2013-06-18 4 views
0

클래스에서 필수 속성을 가져 오는 방법을 문제를 해결하기 위해 노력하고 있습니다. GetPropertiesForSerialization과 같은 기능을 사용할 수 있지만 Attributes을 사용하고 싶습니다. 내 생각은 어떤 클래스 속성이 속성을속성이있는 속성 가져 오기

class C{ 
    [MyAttribute(1,picture)] 
    private string picture = "my.jpg"; 
    [MyAttribute(2,Name)] 
    public string Name= "myName"; 
} 

을해야합니다 그리고 기능 등하지만 돈 '의 속성을 얻는 방법을 알고

private void PrintAttributes(){ 
    //Get list or other container with attibutes 
    var c = new C(); 
    foreach(var item in C.GetMyAttributes()){ 
    Console.WriteLine(item); 
    } 
} 

지금은 다른 클래스에서 내가 속성을 좀하고 싶습니다이다 속성 이름 및 보호 (공개/비공개)를 모른 채 이러한 모든 속성을 얻는 방법을 알지 못합니다.

+0

모든 속성 이름을 가져 오시겠습니까? – PoweredByOrange

답변

1

리플렉션 myObject.GetType().GetProperties()을 사용하여 모든 속성을 가져온 다음 각 속성을 확인하십시오.

+0

좋아, 나는이 '잔인한 힘'을 시도 할 것이다. – wolen

+0

같은 유형의 많은 객체를 serilizing하는 경우 유형별로 한 번 수행하고 결과를 캐시 할 수 있습니다. – alex

+0

나는 그것을 시도하고'item.GetCustomAttribute (typeof (MyAttribute), true);하지만 아무 것도 발견되지 않았다. 이 클래스는 인터페이스를 구현하고'ÌnterfaceI class; 클래스 .GetType ...'. 그러나 속성이있는 속성이 없습니다. – wolen