ProgramingTip

특정 속성을 표시 한 모든 속성 가져 오기 오기

bestdevel 2020. 10. 24. 11:20
반응형

특정 속성을 표시 한 모든 속성 가져 오기 오기


거기에 클래스와 속성이 있습니다. 일부 속성은 속성으로 표시 될 수 있습니다 ( LocalizedDisplayName에서 상 속됨 DisplayNameAttribute). 이 클래스의 모든 속성을 얻는 방법입니다.

private void FillAttribute()
{
    Type type = typeof (NormDoc);
    PropertyInfo[] propertyInfos = type.GetProperties();
    foreach (var propertyInfo in propertyInfos)
    {
        ...
    }
}

목록 상자 LocalizedDisplayName에 속성 값 을 표시 하고 표시 하는 목록 상자에 클래스의 속성을 추가하고 싶습니다 . 어떻게 할 수 있습니까?

편집
은 LocalizedDisplayNameAttribute입니다.

public class LocalizedDisplayNameAttribute : DisplayNameAttribute
    {
        public LocalizedDisplayNameAttribute(string resourceId)
            : base(GetMessageFromResource(resourceId))
        { }

        private static string GetMessageFromResource(string resourceId)
        {
            var test =Thread.CurrentThread.CurrentCulture;
            ResourceManager manager = new ResourceManager("EArchive.Data.Resources.DataResource", Assembly.GetExecutingAssembly());
            return manager.GetString(resourceId);
        }
    }  

리소스 파일에서 싶습니다. 감사합니다.


사용하는 것이 가장 기본적인 것 입니다.IsDefined

var properties = type.GetProperties()
    .Where(prop => prop.IsDefined(typeof(LocalizedDisplayNameAttribute), false));

편집 : 자체 값을 얻으려면 다음을 사용합니다.

var attributes = (LocalizedDisplayNameAttribute[]) 
      prop.GetCustomAttributes(typeof(LocalizedDisplayNameAttribute), false);

참고 URL : https://stackoverflow.com/questions/7305787/get-all-properties-which-marked-certain-attribute

반응형