小编Qst*_*onr的帖子

XmlSerializer列表项元素名称

我上课了 PersonList

[XmlRoot("Persons")]
PersonList : List<Human>
Run Code Online (Sandbox Code Playgroud)

当我将其序列化为XML时,默认情况下会生成如下内容:

<Persons>
  <Human>...</Human>
  <Human>...</Human>
</Persons>
Run Code Online (Sandbox Code Playgroud)

我的问题是需要以改变元素做什么Human,以Person输出?所以输出将是:

<Persons>
  <Person>...</Person>
  <Person>...</Person>
</Persons>
Run Code Online (Sandbox Code Playgroud)

并且,如何将上述XML反序列化为PersonList类对象?

Per Nick的建议,这是我的测试代码:

[XmlRoot("Persons")]
public class Persons : List<Human>
{

}

[XmlRoot("Person")]
public class Human
{
    public Human()
    {
    }

    public Human(string name)
    {
        Name = name;
    }

    [XmlElement("Name")]
    public string Name { get; set; }

}

void TestXmlSerialize()
{
    Persons personList = new Persons();
    personList.Add(new Human("John"));
    personList.Add(new Human("Peter"));

    try
    {
        using (StringWriter writer = new StringWriter())
        { …
Run Code Online (Sandbox Code Playgroud)

c# xmlserializer

37
推荐指数
3
解决办法
6万
查看次数

VS2010自定义MarkupExtension

我们刚刚从vs2008切换到vs2010,我们的项目编译运行良好,没有任何问题.但是,xaml设计器有一些错误.这是其中一个错误,希望有人可以提供解决方案.

我们有一个自定义的MarkupExtension,我们在xaml中使用它来获取某些资源.像这样的东西:

<Button Style="{l:GetResource Key=MyButtonStyle}" />

我知道我们可以使用StaticResource或DynamicResource.但是我们有理由使用自定义markupextension.

设计者的错误消息是:

'GetResourceExtension'对Setter.Value无效.唯一受支持的MarkupExtension类型是DynamicResourceExtension和/ BindingBase或派生类型.

我的问题是代码在vs2008中运行良好,并且在2010年运行良好,如何使2010设计师工作?

xaml visual-studio-2010 markup-extensions

26
推荐指数
1
解决办法
947
查看次数

ClickOnce部署并在安装后更改配置文件

我们正在考虑使用ClickOnce进行部署.我不确定使用ClickOnce时是否可以轻松实现这一点.我们创建ClickOnce安装程序并分发给客户端,每个客户端都将ClickOnce安装程序放在他们自己的网络上.客户端的每个用户都将从其本地网络运行它.

应用程序在配置文件中有一些设置.每个客户端都有自己的设置(客户端下的所有用户都将使用相同的设置).我的理解是,一旦创建了ClickOnce包,客户端就无法更改配置文件以设置自己的设置,或者必须重新签名ClickOnce.

我的理解是否正确?有解决方法吗?应用程序是否可以访问ClickOnce清单中未包含的文件的更新位置?

clickonce

7
推荐指数
1
解决办法
4691
查看次数