Microsoft MVP성태의 닷넷 이야기
Reflection 관련 질문 드립니다. [링크 복사], [링크+제목 복사],
조회: 3836
글쓴 사람
양승조 donator
홈페이지
첨부 파일
 

안녕하세요. 선생님 Reflection 관련 질문 드립니다.

클래스 내에 여러가지 프로퍼티를 선언하여 사용하고 있고, 그 프로퍼티들을 아래와 같이 접근하여 사용하고 있습니다.
일반 프로퍼티는 SetValue나 GetValue 모두 접근이 가능합니다.
문제는 List 형태의 Property에 접근시 문제가 됩니다.
아래는 코드 입니다.

{
    var props = this.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
    for(int i = 0; i < props.Length; i++)
    {
        string nameofType = this.GetType().Name;
        string name = props[i].Name;
        string type = props[i].GetType().ToString();

        if (typeof(System.Collections.IList).IsAssignableFrom(props[i].PropertyType))
        {
            //var list = props[i].GetValue(props[i]) as IEnumerable;
            //List<bool> another = props[i].GetValue(props[i]) as List<bool>;
        }
        else
        {
            object readValue2 = Convert.ChangeType(readValue, props[i].PropertyType);
            props[i].SetValue(this, readValue2);
        }
    }
}

if문에서 리스트 타입인지 확인 후 아래에서 GetValue로 List를 받아 처리하려고 합니다.
여러가지 검색내용을 적용해 보았고, 위 코드에서 if문안에 주석처리된 부분과 같이 적용해 보았으나,
아래와 같은 예외가 발생합니다.

Exception thrown: 'System.Reflection.TargetException' in System.Private.CoreLib.dll
An unhandled exception of type 'System.Reflection.TargetException' occurred in System.Private.CoreLib.dll
Object does not match target type.

감사합니다.








[최초 등록일: ]
[최종 수정일: 4/24/2024]


비밀번호

댓글 작성자
 



2024-04-24 11시38분
저렇게 조각 코드 말고, 실제로 재현이 되는 예제 프로젝트를 압축해서 올려주세요.
정성태

[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5954SunN...10/10/2024375textbox에서 글자입력후 textBox1_KeyUp함수에서listBox1_SelectedIndexChanged 강제호출방법 [1]
5953Roya10/4/2024404c# com host dll을 c++에서 사용할 때, sdk 관련 runtime 을 설치 안하고 제공할수 있을까요?? [1]
5952우광현9/5/20241462서버용 소켓 포트 동적포트 적용시 클라이언트가 호출하는 방법? [2]
5951Kun ...8/21/20241283c++에서 복합데이터 Struct를 .NET Framework에서 구현할 수 있는 방법이 있을까요? [2]
5950SunN...8/18/20241623정석대로 한다면 response.Close() 해야되는지요? [4]
5949SunN...8/16/20241693SqlConnection Open()에서 에러가나면 Close()하는 시점 [3]
5948SunN...8/14/20241752WebRequestMethods.Ftp.MakeDirectory 해제 [3]
5947Roya8/7/20242129c# dll을 cpp lib에서 사용을 할려고 하는데요. CoCreateInstance 에서 지정된 파일을 찾을수 없다고 나오는대요. [4]
5946SunN...8/5/20242321TaskDefinition 에서 사용저가로그온상관없이실행 [3]파일 다운로드1
5945SunN...8/3/20242077윈도우 작업스케줄러 [1]
5944roya8/1/20242132C# dll을 C++ 프로젝트에서 사용을 하고 싶은데, 레지스트리 등록 없이 가능한걸까요?? [2]
5943SunN...8/1/20242054윈도우C#에서 리눅스FTP로 업로드 및 리눅스에 폴더생성(WindowsOS에서C#으로) [3]
5942vict...7/24/20242234dll 을 c#에서 쓰고 싶습니다 [1]
5941vict...7/17/20243452DependencyObject와 같은 스레드에서 DependencySource를 만들어야 합니다. 오류 [2]
5940ckm7/16/20243630선생님 안녕하세요 async await 교착 관련 질문입니다 [1]
5939괴물신인7/9/20243631템플릿 대체할수있는방법이 있을까요? [6]
5938씨제바보7/5/20242761책 질문드립니다. [1]
5937Thor... donator5/27/20243783C# 12 는 전자책이 언제쯤 나오게 될까요? [1]
5936ds4/26/20244842활성화 되어 있는 커뮤니티 발견하게 되어 기분이 좋습니다. 자주 놀러 올께요. (내용 없습니다. [2]
5935양승조 donator4/25/20244882Reflection 관련 질문 드립니다. [5]파일 다운로드1
5934양승조 donator4/24/20243836Reflection 관련 질문 드립니다. [1]
5933vict...4/23/20243821cpp 라이브러리 디버깅 방법 문의 드립니다. [1]
5932EK4/12/20243890다음 제네릭에서 널익셉션이 뜨는 이유를 알수있을까요? [1]
5931이대희4/2/20244208Windows 앱 SDK C# 템플릿의 용도가 무엇인지요? [1]
5930vict...2/22/20245613ef core, FromSqlRaw 맵핑 질문입니다. [4]
[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...