【发布时间】:2013-05-24 10:35:20
【问题描述】:
我有一个具有类属性的类:
[XmlRoot(ElementName = "RootXML")]
public class Apply
{
/My Properties
}
现在从上面的类创建一个xml,我使用下面的函数:
public virtual string RenderXml()
{
XmlTextWriter writer = null;
try
{
MemoryStream ms = new MemoryStream();
writer = new XmlTextWriter(ms, Encoding.UTF8);
writer.Formatting = Formatting.Indented;
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
_xmlSerializer.Serialize(writer, this, ns);
ms.Position = 0;
using (StreamReader sr = new StreamReader(ms))
{
return sr.ReadToEnd();
}
}
finally
{
if (writer != null)
writer.Close();
}
}
我的问题是如何将属性添加到“RootXML”并从配置文件和函数中读取属性值,例如
<RootXML attr1="read from config" attr2="read from function" >
<Property1>value</Property1>
</RootXML>
【问题讨论】:
-
你试过了吗:
writer.WriteAttributeString("AttrNAme", "AttrValue"); -
试过这个: writer.WriteAttributeString("RootXML", "attr1=" + System.Configuration.ConfigurationManager.AppSettings["id"]);但得到异常:抛出类型为 'System.InvalidOperationException 的异常
-
堆栈跟踪是什么。
-
在 System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id) at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o , XmlSerializerNamespaces namespaces) 在 PDB.UK.UI.ApplyInfoContainer.RenderXml() 在 C:\Proj\Container.cs:line 227 at btnSubmit_Click(Object sender, EventArgs e) in C:\Proj\Project\Create.aspx.cs :185行
标签: c# xml elementname xmlroot