문제

메소드에서받는 특정 객체의 사용자 정의 속성을 얻는 방법이 있습니까?

나는 Over Type.getMembers ()를 반복하고 내 멤버를 검색하기를 원하거나 반복하지 않을 수 없습니다. 나는 멤버이기도 한 개체가 속성을 가지고 있습니다.

속성은 어떻게 얻습니까?

class Custom
{
    [Availability]
    private object MyObject = "Hello";

    private void Do(object o)
    {
        //does object 'o' has any custom attributes of type 'Availability'?
    }

    //somewhere I make the call: Do(MyObject)

}
도움이 되었습니까?

해결책

아니요. 객체에는 속성이 없습니다. 당신이 "do"메소드에있을 때까지, 당신이 do (myobject) vs do (myotherfield whichhasthesamevalue)라는 사실에 대한 기록은 없습니다.

회원의 속성을 찾아야하는 경우 기본적으로 평가하는 일이 아니라 관련 멤버 인자에게 전달해야합니다.

다른 팁

최소 1 회 반사 호출 없이는이 작업을 수행 할 수 없습니다. 그 후, 값을 어떻게 든 저장하십시오.

예시:

abstract MyBase
{
  public string Name;
  protected MyBase()
  {
    //look up value of Name attribute and assign to Name
  } 
}

[Name("Foo")]
class MyClass : MyBase
{
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top