static void ValidateAndAddKeyProperties(DataFieldNameCollection keyProperties, Type interfaceType, IList <Type> superInterfacesType) { foreach (string propertyName in DataAttributeFacade.GetKeyPropertyNames(interfaceType)) { PropertyInfo property = interfaceType.GetProperty(propertyName); if (property == null) { foreach (Type superInterface in superInterfacesType) { property = superInterface.GetProperty(propertyName); if (property != null) { break; } } } Verify.IsNotNull(property, "Missing property '{0}' on type '{1}' or one of its interfaces".FormatWith(propertyName, interfaceType)); if (DynamicTypeReflectionFacade.IsKeyField(property)) { keyProperties.Add(propertyName, false); } } }
static void ValidateAndAddKeyProperties( DataFieldNameCollection keyProperties, DataFieldNameCollection versionKeyProperties, Type interfaceType) { foreach (string propertyName in interfaceType.GetKeyPropertyNames()) { PropertyInfo property = FindProperty(interfaceType, propertyName); if (DynamicTypeReflectionFacade.IsKeyField(property)) { keyProperties.Add(propertyName, false); } } foreach (string propertyName in interfaceType.GetVersionKeyPropertyNames()) { FindProperty(interfaceType, propertyName); versionKeyProperties.Add(propertyName, false); } }