-2
직렬화에 대한 몇 가지 클래스를 사용하는 파일의 확장자를 선언 할 수 있습니다 사용자 지정 특성이있다 이제 반사를 사용하여 GetFilterString()
결과를 검색합니다.형식화 된 래퍼
string filter = (Attribute.GetCustomAttribute(typeof(UsersDB), typeof(FileExtensionAttribute)) as FileExtensionAttribute).GetFilterString();
saveFileDialog.Filter = filter;
openFileDialog.Filter = filter;
나는 더 많은 표현을 쓰고 싶습니다. 필자 덜 장황한, 이런 식으로 뭔가 :
UsersDB.Attributes.FileExtension.GetFilterString();
또는
AttributesOf(UsersDB).FileExtension.GetFilterString();
적어도
그리고 나는 어떤 속성과 클래스의 구문을 기원합니다. 당신이static class ObjectExtends
{
public static T GetAttribute<T>(this object obj) where T : Attribute
{
return (T)Attribute.GetCustomAttribute(obj.GetType(), typeof(T));
}
public static T GetAttribute<T>(Type t) where T : Attribute
{
return (T)Attribute.GetCustomAttribute(t, typeof(T));
}
}
사용과 같은 객체를 확장 할 수