저는 Type.GetProperties()를 사용하여 객체의 public 속성을 반복하는 모듈을 가지고 있으며 이러한 속성에 대한 다양한 연산을 수행합니다. 그러나 때로는 일부 속성을 다르게 처리해야합니다 (예 : 무시). 내 모듈 타입의 TestClass의 객체를 얻을 때마다, 재산 Prop2 무시하도록 지정할 수 있도록하고 싶습니다 지금클래스 (객체가 아닌)의 속성을 참조하는 방법은 무엇입니까?
class TestClass
{
public int Prop1 { get; set; }
public int Prop2 { get; set; }
}
예를 들어, 나는 다음과 같은 클래스가 있다고 가정합니다. 이상적으로 나는 다음과 같이 말할 수 있기를 바란다 :
ReflectionIterator.AddToIgnoreList(TestClass::Prop2);
그러나 이것은 분명히 작동하지 않는다. 클래스의 인스턴스를 처음 만들면 PropertyInfo 객체를 얻을 수 있지만,이를 수행하기 위해 인위적인 인스턴스를 만들지는 않습니다. TestClass :: Prop2에 대한 PropertyInfo-object를 얻을 수있는 다른 방법이 있습니까? 속성을 반복 할 때 다음
ReflectionIterator.AddToIgnoreList("NamespaceName.TestClass.Prop2");
과 :
은 (공식적으로, 내 현재 솔루션은 다음과 같이 다음을 통해 반복 각 속성 비교 문자열 리터럴을 사용foreach (var propinfo in obj.GetProperties())
{
if (ignoredProperties.Contains(obj.GetType().FullName + "." + propinfo.Name))
// Ignore
// ...
}
하지만이 솔루션은
와우, 정말 고마워! –
꼬마 요정, 어떤 식 으로든 그 문자열을 피할 수 있을까요? 그래서 코 일러와 인텔리 센스가 나를 도울 수 있을까요? –
http://stackoverflow.com/a/388841/781792 답변. –