public static void AddFieldElement(string typeName, string fieldName, DotNetNativeMemberPolicy browse = null, DotNetNativeMemberPolicy dynamic = null, DotNetNativeMemberPolicy serialize = null)
        {
            if (!IsEnabled)
            {
                return;
            }
            DotNetNativeAssistantTypeElement element = FindTypeElement(typeName);

            if (element == null)
            {
                element = new DotNetNativeAssistantTypeElement()
                {
                    TypeName = typeName
                };
                Elements.Add(element);
            }
            else
            {
                if (element.IsEmpty)
                {
                    return;
                }
            }
            DotNetNativeAssistantFieldElement field = element.FindFieldElement(fieldName);

            if (field == null)
            {
                field = new DotNetNativeAssistantFieldElement(element)
                {
                    FieldName = fieldName
                };
                element.FieldElements.Add(field);
            }
            field.Browse    = browse;
            field.Dynamic   = dynamic;
            field.Serialize = serialize;
        }
        public static void AddPropertyElement(string typeName, string propertyName, DotNetNativeMemberPolicy browse = null, DotNetNativeMemberPolicy dynamic = null, DotNetNativeMemberPolicy serialize = null)
        {
            if (!IsEnabled)
            {
                return;
            }
            DotNetNativeAssistantTypeElement element = FindTypeElement(typeName);

            if (element == null)
            {
                element = new DotNetNativeAssistantTypeElement()
                {
                    TypeName = typeName
                };
                Elements.Add(element);
            }
            else
            {
                if (element.IsEmpty)
                {
                    return;
                }
            }
            DotNetNativeAssistantPropertyElement property = element.FindPropertyElement(propertyName);

            if (property == null)
            {
                property = new DotNetNativeAssistantPropertyElement(element)
                {
                    PropertyName = propertyName
                };
                element.PropertyElements.Add(property);
            }
            property.Browse    = browse;
            property.Dynamic   = dynamic;
            property.Serialize = serialize;
        }