我的应用程序使用内置的.NET解决方案从内存中的对象生成XAML文件:System.XamlServices.Save(Stream, Object)
但是,我得到的XAML严重受到污染。所有属性始终是序列化的。 有没有办法告诉XAML序列化程序忽略保存默认值的属性?(我几乎可以完全控制序列化的类。)
Expression Blend解决了这个问题:如果我们不更改属性,生成的XAML文件将根本不包含它。生成的XAML并没有包含所有可能的属性及其默认值,并且看起来不像常规自动生成的混乱。我也想拥有漂亮的XAML。
答案 0 :(得分:3)
旧问题,但我最近也遇到了这个问题,看起来Xaml序列化程序尊重DefaultValueAttribute。
我实际上没有在.net 4.5的任何版本中测试过这个,但我记得在2006年的一篇文章中读到这篇文章(我现在不能发现它不幸)
要生成更清晰的xaml的其他两个属性是ContentAttribute 当其他元素被指定为该元素的直接子元素时允许特定属性为“默认”,并允许您指定用于包装这些值的集合的ContentWrapperAttribute(对于集合)
答案 1 :(得分:1)
仅使用一个对象执行此操作:
在:
对于每个对象:
我让你在字典中使用相同的XPath来使嵌套对象更好地工作。然而,这取决于你的对象是什么以及它们如何嵌套以便能够与之对话。祝你好运!