假设我有一个包含100个道具的ViewModel.目前我需要一个处理程序,如果任何道具更改将被调用.当然,我可以为每个房产写100个订阅,但似乎有更好的方法.就像在C#中一样,您可以绑定到模型的PropertyChanged事件,然后按名称选择感兴趣的属性.
我使用Code-First aproach为EF 4.1 RC设置了一个简单的测试项目.我所看到的,每次调用新的MyContext()都需要相当长的时间.我发现,有一个构造函数接受DbCompiledModel和描述http://msdn.microsoft.com/en-us/library/system.data.entity.infrastructure.dbcompiledmodel(v=VS.103).aspx说,为了更好的性能,缓存此对象是一件好事.但我无法找到如何从现有上下文中获取DbCompiledModel.并且网上没有样品.
假设我有以下类结构:
[XmlInclude(typeof(CustomNode))]
[XmlInclude(typeof(CustomNode2))]
[XmlRoot("node")]
class Node
{
[XmlElement("node")]
public Node[] Children { get; set; }
}
[XmlRoot("custom-node")]
class CustomNode : Node { }
[XmlRoot("custom-node-2")]
class CustomNode2 : Node { }
Run Code Online (Sandbox Code Playgroud)
我创建了以下结构:
var root = new Node { Children = new Node[2] };
root.Children[0] = new CustomNode();
root.Children[1] = new CustomNode2();
Run Code Online (Sandbox Code Playgroud)
当我Xml序列化这个结构时,我得到以下输出:
<node>
<node xsi:Type="CustomNode"/>
<node xsi:Type="CustomNode2"/>
</node>
Run Code Online (Sandbox Code Playgroud)
但我想看到(并能够正确加载)这样的东西:
<node>
<custom-node/>
<custom-node-2/>
</node>
Run Code Online (Sandbox Code Playgroud)
是否可以用于XmlSerializer?整个问题是因为我打算手动创建source xml,并且我试图让它变得更加人性化和友好.