Enterra.V8x1C.DOM.TypeInfo.LoadFromV8Xml C# (CSharp) Method

LoadFromV8Xml() static private method

static private LoadFromV8Xml ( string v8Xml ) : TypeInfo
v8Xml string
return TypeInfo
        internal static TypeInfo LoadFromV8Xml(string v8Xml)
        {
            if (string.IsNullOrEmpty(v8Xml) || 
                string.Equals(v8Xml, "Null", StringComparison.InvariantCultureIgnoreCase) ||
                string.Equals(v8Xml, "p1:Null", StringComparison.InvariantCultureIgnoreCase) ||
                string.Equals(v8Xml, "d2p1:Null", StringComparison.InvariantCultureIgnoreCase)
                )
            {
                return null;
            }

            TypeInfo typeIbfo = new TypeInfo();
            typeIbfo.Type = ParseTypeEnumFromV8Xml(v8Xml);

            typeIbfo.ReferenceTypeName = null;

            if (typeIbfo.Type == TypeEnum.CatalogRef ||
                typeIbfo.Type == TypeEnum.DocumentRef ||
                typeIbfo.Type == TypeEnum.EnumRef
                )
            {
                int dotPos = v8Xml.IndexOf('.');
                if (dotPos >= 0)
                {
                    typeIbfo.ReferenceTypeName = v8Xml.Substring(dotPos + 1);
                }
            }

            return typeIbfo;
        }

Usage Example

Beispiel #1
0
        /// <summary>
        /// Parse V8Xml value
        /// </summary>
        /// <param name="valueTag"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        internal bool TryParseV8XmlValue(XmlElement valueTag, out object value)
        {
            if (valueTag.GetAttribute(V8XmlXsiNilAttr) == "true")
            {
                value = null;
                return(true);
            }

            string typeStr = valueTag.GetAttribute(V8XmlXsiTypeAttr);

            {
                TypeInfo valueType = TypeInfo.LoadFromV8Xml(typeStr);
                if (valueType != null &&
                    valueType.Type != TypeEnum.Unknown &&
                    valueType.TryParseValueFromV8Xml(Session, valueTag.InnerText, out value)
                    )
                {
                    return(true);
                }
            }

            foreach (var valueType in Types)
            {
                if (valueType.TryParseValueFromV8Xml(Session, valueTag.InnerText, out value))
                {
                    return(true);
                }
            }

            value = null;
            return(false);
        }
All Usage Examples Of Enterra.V8x1C.DOM.TypeInfo::LoadFromV8Xml