我正在使用Silverlight
我在初始化对象时遇到错误:
Error 1 Duplicate initialization of member 'Parameter' C:\Users\SHEK\Documents\Visual Studio 2012\Projects\SliderLastTry\SliderLastTry\ControlClass.cs 24 17 SliderLastTry
它对应于参数的第二个初始化:
Parameter = { new Parameter { Name = "Name2", Label = "Label2", Unit = "Uint2", Component = { new Component { Type = "Type2", Attributes = { new Attributes { Type = "Slider", Displayed = "52", Selected = "05", Items = { "20", "21", "22", "23", "24" } } } } } } }
我试图在主函数中分配初始化对象,如下所示:
Parameter = { new Parameter { Name = "Name1", Label = "Label1", Unit = "Uint1", Component = { new Component { Type = "Type1", Attributes = { new Attributes { Type = "Combo", Displayed = "42", Selected = "02", Items = { "10", "11", "12", "13", "14" } } } } } } }
,
Separator = { new Separator { Separators = "AutoSkew1" } }
,
Parameter = { new Parameter { Name = "Name2", Label = "Label2", Unit = "Uint2", Component = { new Component { Type = "Type2", Attributes = { new Attributes { Type = "Slider", Displayed = "52", Selected = "05", Items = { "20", "21", "22", "23", "24" } } } } } } }
和
var memory = new MemoryStream();
var serial = new XmlSerializer(objectToSerialize.GetType());
serial.Serialize(memory, objectToSerialize);
var utf8 = new UTF8Encoding();
return utf8.GetString(memory.GetBuffer(), 0, (int)memory.Length);
我知道原因为什么我有这个错误。但即使在意识到这一点之后这样做的原因是:
(1)我必须按照我向你展示的顺序显示xml。我的意思是参数然后分离器再一个参数。但是,如果我在Parameter = { new Parameter{..} , new Parameter{..}}
这样的第一个初始化中初始化我的对象,那么它会在接下来显示,但我想在这两个之间<separator>Auto Skewing</separator>
。
如何解决这两个问题?如果您仍然不明白我正在尝试做什么,请不要犹豫再问我。非常感谢。
编辑:我想它可以通过XElement完成,但是如何管理我仍然无法理解的代码。答案 0 :(得分:1)
1:XmlSerializer
不支持该方案。要以该格式构建xml,您应该考虑使用XElement
或XmlDocument
而不是XmlSerializer
。
2:[XmlText]
,但是“1”使这个没有实际意义