我上课了 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) 我们刚刚从vs2008切换到vs2010,我们的项目编译运行良好,没有任何问题.但是,xaml设计器有一些错误.这是其中一个错误,希望有人可以提供解决方案.
我们有一个自定义的MarkupExtension,我们在xaml中使用它来获取某些资源.像这样的东西:
<Button Style="{l:GetResource Key=MyButtonStyle}" />
我知道我们可以使用StaticResource或DynamicResource.但是我们有理由使用自定义markupextension.
设计者的错误消息是:
'GetResourceExtension'对Setter.Value无效.唯一受支持的MarkupExtension类型是
DynamicResourceExtension
和/BindingBase
或派生类型.
我的问题是代码在vs2008中运行良好,并且在2010年运行良好,如何使2010设计师工作?
我们正在考虑使用ClickOnce进行部署.我不确定使用ClickOnce时是否可以轻松实现这一点.我们创建ClickOnce安装程序并分发给客户端,每个客户端都将ClickOnce安装程序放在他们自己的网络上.客户端的每个用户都将从其本地网络运行它.
应用程序在配置文件中有一些设置.每个客户端都有自己的设置(客户端下的所有用户都将使用相同的设置).我的理解是,一旦创建了ClickOnce包,客户端就无法更改配置文件以设置自己的设置,或者必须重新签名ClickOnce.
我的理解是否正确?有解决方法吗?应用程序是否可以访问ClickOnce清单中未包含的文件的更新位置?