你的问题是很模糊即使同时测试我们应该特别。关注细节。例如。想象一下班
public abstract class WeirdModel {
// It's not me who implement this readonly property
protected abstract String Something {get;}
}
public class EerieModel {
// write-only banned property
[Obsolete("Do not call obsolete properties!", true)]
public string DoNotCallMe(set {...})
}
public class PrivateModel {
// That's for me only
private string PersonalInfo {get; set;}
}
public class StaticModel {
// One property for all instances
public static string CommonInfo {get; set;}
}
你考虑到这些类是新的呢?在你要获取属性,筛选出他们终于任何情况下检查是否任何这样的属性存在:
var isNew = typeof(AddressModel)
.GetProperties(BindingFlags.Instance | BindingFlags.Public)
.Where(property => property.CanRead && property.CanWrite)
.Where(property => property.GetAccessors().All(method => !method.IsAbstract))
//TODO: put more conditions on properties if you want
...
.Any();
请您约新类多一点解释? –
你的意思是说它之前一直存在吗?如果是这种情况,则从持久性存储区传递该id,如果它等于默认值,则它不存在于存储区中,否则会存在。 – Igor
'typeof(MyModel).GetProperty(“Address”,/ *绑定标志实例* /)。PropertyType'这将返回属性的类型,您可以检查属性值是默认还是somthing。 –