Пример #1
0
        //public static XObject CreateObject( string xmlString, Type objType )
        //{
        //    try
        //    {
        //        if( xmlString == null ||
        //            XObjectHelper.IsXObjectType( objType ) == false ) return null;

        //        //object item = objType.Assembly.CreateInstance( objType.ToString() );
        //        object item = objType.Assembly.CreateInstance(objType.FullName);

        //        XmlDocument xmlDoc = new XmlDocument();
        //        xmlDoc.LoadXml( xmlString );

        //        string tname = XObjectHelper.GetCleanName(objType.Name);
        //        XmlNodeList nodelist = xmlDoc.GetElementsByTagName(tname);
        //        if( nodelist != null && nodelist.Count > 0 )
        //        {
        //            XObjectHelper.XBaseType.InvokeMember( "Load",
        //                BindingFlags.Public | BindingFlags.NonPublic |
        //                BindingFlags.Instance | BindingFlags.InvokeMethod,
        //                null, item, new object[]{nodelist[0]} );
        //        }

        //        _lastError = null;
        //        return item as XObject;
        //    }
        //    catch( Exception err )
        //    {
        //        XObjectManager.NotifyException( typeof(XObjectManager), err );
        //        return null;
        //    }
        //}
        public static XBase CreateObject(string xmlString, Type objType)
        {
            try
            {
                if (xmlString == null ||
                    XObjectHelper.IsXBaseType(objType) == false)
                {
                    return(null);
                }

                //object item = objType.Assembly.CreateInstance( objType.ToString() );
                object item = objType.Assembly.CreateInstance(objType.FullName);

                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(xmlString);

                string      tname    = XObjectHelper.GetCleanName(objType.Name);
                XmlNodeList nodelist = xmlDoc.GetElementsByTagName(tname);
                if (nodelist != null && nodelist.Count > 0)
                {
                    XObjectHelper.XBaseType.InvokeMember("Load",
                                                         BindingFlags.Public | BindingFlags.NonPublic |
                                                         BindingFlags.Instance | BindingFlags.InvokeMethod,
                                                         null, item, new object[] { nodelist[0] });
                }

                _lastError = null;
                return(item as XBase);
            }
            catch (Exception err)
            {
                XObjectManager.NotifyException(typeof(XObjectManager), err);
                return(null);
            }
        }
Пример #2
0
        public string ToXMLString(Type t)
        {
            if (t == null)
            {
                return(ToXMLString());
            }
            string nodeName = XObjectHelper.GetCleanName(t.Name);

            return(ToFullString(nodeName, t));
        }