110,538
社区成员
发帖
与我相关
我的任务
分享
<Root>
<Node1/>
<Node2/>
<Node3/>
</Root>
现在声明返回的对象为 objDynamic ,
这三个节点的值分别就可以这样表示 :
objDynamic.Root.Node1
objDynamic.Root.Node2
objDynamic.Root.Node3
如果你不明白的话, 你可以自己拿着跑一遍
stream = File.OpenRead(strXmlPath);
var xmlSerializer = new XmlSerializer(typeof(object)); //这一步~
xmlReader = new XmlTextReader(stream);
if (xmlSerializer.CanDeserialize(xmlReader))
{
var obj = xmlSerializer.Deserialize(stream);
dynamic objDynamic = obj;
return objDynamic;
}
[/quote]
你还没有理解这段代码的意思stream = File.OpenRead(strXmlPath);
var xmlSerializer = new XmlSerializer(typeof(object)); //这一步~
xmlReader = new XmlTextReader(stream);
if (xmlSerializer.CanDeserialize(xmlReader))
{
var obj = xmlSerializer.Deserialize(stream);
dynamic objDynamic = obj;
return objDynamic;
}
public static dynamic Read(string strXmlPath)
{
if (!File.Exists(strXmlPath))
throw new ArgumentNullException("strXmlPath");
var xmlDoc = new XmlDocument();
xmlDoc.Load(strXmlPath);
var strJsonContent = JsonConvert.SerializeXmlNode(xmlDoc);
dynamic objDynamic = JsonConvert.DeserializeObject(strJsonContent);
return objDynamic;
}
public static string ReadAsString(string strXmlPath)
{
FileStream stream = null;
try
{
if (!File.Exists(strXmlPath))
throw new ArgumentNullException("strXmlPath");
stream = File.OpenRead(strXmlPath);
var xmlDoc = new XmlDocument();
xmlDoc.Load(strXmlPath);
return xmlDoc.InnerXml;
}
catch (ArgumentNullException)
{
throw;
}
catch (Exception)
{
//log
}
finally
{
if (stream != null)
stream.Close();
}
return null;
}
public static dynamic Read(string strXmlContent)
{
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(strXmlContent);
var strJsonContent = JsonConvert.SerializeXmlNode(xmlDoc);
dynamic objDynamic = JsonConvert.DeserializeObject(strJsonContent);
return objDynamic;
}
stream = File.OpenRead(strXmlPath);
var xmlSerializer = new XmlSerializer(typeof(object)); //这一步~
xmlReader = new XmlTextReader(stream);
if (xmlSerializer.CanDeserialize(xmlReader))
{
var obj = xmlSerializer.Deserialize(stream);
dynamic objDynamic = obj;
return objDynamic;
}
单单通过编译没有意义吧
public static dynamic Read(string strXmlPath)
{
FileStream stream = null;
XmlTextReader xmlReader = null;
try
{
stream = File.OpenRead(strXmlPath);
var xmlSerializer = new XmlSerializer(typeof(dynamic)); //这一步~
xmlReader = new XmlTextReader(stream);
if (xmlSerializer.CanDeserialize(xmlReader))
{
dynamic objDynamic = xmlSerializer.Deserialize(stream);
return objDynamic;
}
}
catch (Exception)
{
// log
}
finally
{
if (xmlReader != null)
xmlReader.Close();
if (stream != null)
{
stream.Flush();
stream.Close();
}
}
return null;
}