gpt4 book ai didi

c# - 将属性添加到 XMLROOT 元素名称

转载 作者:数据小太阳 更新时间:2023-10-29 02:30:59 25 4
gpt4 key购买 nike

我有一个带有 class 属性的类:

[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>

最佳答案

您可以添加到您的类属性属性 [XmlAttribute] 并且该属性将被序列化为属性

[XmlRoot(ElementName = "RootXML")]
public class Apply
{
private string _testAttr="dfdsf";



[XmlAttribute]
public String TestAttr
{
get { return _testAttr; }

set { _testAttr = value; }
}
}

该类的序列化结果

<RootXML TestAttr="dfdsf" />

为最后一条评论添加。如果我理解正确,您只需要在 session 中使用一把 key 。如果是这样,您可以使用类似的东西:

string GetKey(){

if (String.IsNullOrEmpty(HttpContext.Current.Session["mySessionKey"].ToString()))
HttpContext.Current.Session["mySessionKey"] = GenereteKey();
return HttpContext.Current.Session["mySessionKey"].ToString();

}

关于c# - 将属性添加到 XMLROOT 元素名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16733007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com