안녕하세요, 클래스의 속성 이름에 해당 속성에 대한 사용자 지정 속성 값이 있으면 어떻게 가져올 수 있습니까? 및 물론 사용자 정의 속성 이름.속성 값으로 속성 이름 가져 오기
답변
사용자 정의 속성으로 속성 이름을 가져옵니다 :
public static string[] GetPropertyNameByCustomAttribute
<ClassToAnalyse, AttributeTypeToFind>
(
Func<AttributeTypeToFind, bool> attributePredicate
)
where AttributeTypeToFind : Attribute
{
if (attributePredicate == null)
{
throw new ArgumentNullException("attributePredicate");
}
else
{
List<string> propertyNames = new List<string>();
foreach
(
PropertyInfo propertyInfo in typeof(ClassToAnalyse).GetProperties()
)
{
if
(
propertyInfo.GetCustomAttributes
(
typeof(AttributeTypeToFind), true
).Any
(
currentAttribute =>
attributePredicate((AttributeTypeToFind)currentAttribute)
)
)
{
propertyNames.Add(propertyInfo.Name);
}
}
return propertyNames.ToArray();
}
}
시험 설비 :
public class FooAttribute : Attribute
{
public String Description { get; set; }
}
class FooClass
{
private int fooProperty = 42;
[Foo(Description="Foo attribute description")]
public int FooProperty
{
get
{
return this.fooProperty;
}
}
}
테스트 케이스 :
// It will return "FooProperty"
GetPropertyNameByCustomAttribute<FooClass, FooAttribute>
(
attribute => attribute.Description == "Foo attribute description"
);
// It will return an empty array
GetPropertyNameByCustomAttribute<FooClass, FooAttribute>
(
attribute => attribute.Description == "Bar attribute description"
);
이것은 속성과 어떤 관련이 있습니까? 의심의 여지가 없지만 대답에는 "속성"이라는 단어가 없습니다. – aquinas
왜 이것이 downvoted되고 있는지 잘 모르겠다. 내 질문에 대한 질문에 OP는 주어진 개체에 대한 invokable 속성 목록을 검색하는 방법에 대한 질문입니다. 이 대답에 대한 질문에 정보 부족을 고려하면 옳은 것 같습니다. –
Reflection API에 대해 들었던 다른 관련 질문으로 인해 Reflection API를 사용하는 방법을 알고 싶어한다는 것을 분명히 이해했습니다.이 API를 모르는 사람은 자신의 의도를 설명하기가 매우 어렵습니다. – fsenart
- 1. selectbox의 이름 속성 가져 오기
- 2. poco 속성 이름 가져 오기
- 3. 값에서 속성 이름 가져 오기
- 4. 선언 된 속성 내에 속성 이름 가져 오기
- 5. ModelMetadata를 사용하여 전체 속성 이름 가져 오기
- 6. 사용자 정의 오브젝트의 속성 이름 가져 오기
- 7. JSON에서 요소 속성 이름 가져 오기
- 8. .NET : 속성의 속성 이름 가져 오기
- 9. 열 단위로 속성 가져 오기
- 10. 속성에서 속성 가져 오기
- 11. 반복없이 속성 가져 오기
- 12. ComboBox.SelectedItem에서 속성 가져 오기?
- 13. 생성자에서 속성 가져 오기
- 14. NPAPI 속성 가져 오기
- 15. 클래스의 속성 가져 오기
- 16. Magento : 제품이없는 속성 세트에서 속성 가져 오기
- 17. 속성 표현식에서 속성 소유 객체 가져 오기
- 18. 속성 내에서 속성 값 가져 오기
- 19. Appscript에서 여러 속성 가져 오기
- 20. Backbone.js : 속성 가져 오기 및 가져 오기
- 21. 인스턴스의 속성 만 가져 오기
- 22. XPath를 사용하여 이름 속성 값으로 노드 찾기
- 23. jQuery 필터 (속성 값으로)
- 24. 속성 파일에서 상수 가져 오기?
- 25. DataMapper 모델 속성 가져 오기
- 26. ActiveX 개체 속성 가져 오기
- 27. 슬래시로 객체 속성 가져 오기
- 28. VB 요소의 속성 가져 오기
- 29. 자바 빈에서 속성 가져 오기
- 30. Storyboard에서 종속성 속성 가져 오기
을 더 설명해주십시오, 당신을 질문은있는 그대로 명확하지 않으며 닫힐 가능성이 높습니다. –