У меня есть класс, который реализует интерфейс.Я хотел бы изучить только значения свойств, которые реализуют мой интерфейс.
Итак, скажем, например, у меня есть этот интерфейс:
public interface IFooBar {
string foo { get; set; }
string bar { get; set; }
}
И этот класс:
public class MyClass :IFooBar {
public string foo { get; set; }
public string bar { get; set; }
public int MyOtherPropery1 { get; set; }
public string MyOtherProperty2 { get; set; }
}
Итак, мне нужно выполнить это, без магиистроки:
var myClassInstance = new MyClass();
foreach (var pi in myClassInstance.GetType().GetProperties()) {
if(pi.Name == "MyOtherPropery1" || pi.Name == "MyOtherPropery2") {
continue; //Not interested in these property values
}
//We do work here with the values we want.
}
Как я могу заменить это:
if(pi.Name == 'MyOtherPropery1' || pi.Name == 'MyOtherPropery2')
Вместо того, чтобы проверять, является ли мое свойство ==
магической строкой, я хотел бы простопроверьте, реализовано ли свойство из моего интерфейса.