public static ExpandableExtensionPropertyDescriptor CreateExtensionDescriptor(IORMPropertyExtension extensionElement) { ModelElement element = extensionElement as ModelElement; DomainPropertyInfo extensionExpandableTopLevelPropertyInfo = element.Store.DomainDataDirectory.FindDomainProperty(extensionElement.ExtensionExpandableTopLevelPropertyId); // If ExtensionExpandableTopLevelPropertyGuid is invalid or Guid.Empty, FindDomainProperty returns null. bool readOnly = (extensionExpandableTopLevelPropertyInfo == null); PropertyDescriptor descriptor; ExpandableObjectConverter expandableConverter; if (!readOnly) { descriptor = DomainTypeDescriptor.CreatePropertyDescriptor(element, extensionExpandableTopLevelPropertyInfo); expandableConverter = new ExpandableExtensionConverter(extensionElement, descriptor); } else { descriptor = null; expandableConverter = new ExpandableObjectConverter(); } return(new ExpandableExtensionPropertyDescriptor(extensionElement, expandableConverter, readOnly, descriptor)); }
public static ExpandableExtensionPropertyDescriptor CreateExtensionDescriptor(IORMPropertyExtension extensionElement) { ModelElement element = extensionElement as ModelElement; DomainPropertyInfo extensionExpandableTopLevelPropertyInfo = element.Store.DomainDataDirectory.FindDomainProperty(extensionElement.ExtensionExpandableTopLevelPropertyId); // If ExtensionExpandableTopLevelPropertyGuid is invalid or Guid.Empty, FindDomainProperty returns null. bool readOnly = (extensionExpandableTopLevelPropertyInfo == null); PropertyDescriptor descriptor; ExpandableObjectConverter expandableConverter; if (!readOnly) { descriptor = DomainTypeDescriptor.CreatePropertyDescriptor(element, extensionExpandableTopLevelPropertyInfo); expandableConverter = new ExpandableExtensionConverter(extensionElement, descriptor); } else { descriptor = null; expandableConverter = new ExpandableObjectConverter(); } return new ExpandableExtensionPropertyDescriptor(extensionElement, expandableConverter, readOnly, descriptor); }