Ecologylab.BigSemantics.MetaMetadataNS.MetaMetadataNestedField.CustomizeFieldDescriptor C# (CSharp) Метод

CustomizeFieldDescriptor() защищенный Метод

protected CustomizeFieldDescriptor ( SimplTypesScope metadataTScope, MetadataFieldDescriptorProxy fdProxy ) : void
metadataTScope Simpl.Serialization.SimplTypesScope
fdProxy MetadataFieldDescriptorProxy
Результат void
        protected override void CustomizeFieldDescriptor(SimplTypesScope metadataTScope, MetadataFieldDescriptorProxy fdProxy)
        {
            base.CustomizeFieldDescriptor(metadataTScope, fdProxy);

            MetaMetadata thisMmd = TypeMmd;
            if (thisMmd == null)
                return;

            MetaMetadataNestedField inheritedField = (MetaMetadataNestedField) SuperField;
            if (inheritedField != null)
            {
                MetaMetadata superMmd = inheritedField.TypeMmd;
                if (thisMmd == superMmd || thisMmd.IsDerivedFrom(superMmd))
                {
                    MetadataClassDescriptor elementMetadataCD = thisMmd.GetMetadataClassDescriptor(metadataTScope);
                    if (elementMetadataCD != null)
                        fdProxy.SetElementClassDescriptor(elementMetadataCD);
                    else
                    {
                        Debug.WriteLine("can't bind FieldDescriptor because metadata class does not exist for: " + thisMmd.ToString());
                    }
                }
                else
                {
                    throw new MetaMetadataException("incompatible types: " + inheritedField + " => " + this);
                }
            }
        }