首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#属性XmlIgnore和XamlWriter类- XmlIgnore不工作

C#属性XmlIgnore和XamlWriter类- XmlIgnore不工作
EN

Stack Overflow用户
提问于 2011-01-01 20:09:58
回答 1查看 4.8K关注 0票数 8

我有一个类,包含一个标记为Brush MyBrush的属性[XmlIgnore]。不过,它是在流中序列化的,在尝试通过XamlReader读取时会造成麻烦。

我做了一些测试,例如,当将属性的可见性更改为内部时,它就会在流中消失。不幸的是,我无法在我的特定情况下做到这一点。

  1. ,有人有同样的问题吗?
  2. ,你能找到解决这个问题的方法吗?

备注:据我所知,C# 4.0

这是我在单元测试中测试XamlSerialization的一种方法

代码语言:javascript
复制
            // buffer to a StringBuilder
            StringBuilder sb = new StringBuilder();
            XmlWriter writer = XmlWriter.Create(sb, settings);
            XamlDesignerSerializationManager manager = new XamlDesignerSerializationManager(writer) {XamlWriterMode = XamlWriterMode.Expression};

            XamlWriter.Save(testObject, manager);
            xml = sb.ToString();
            Assert.IsTrue(!String.IsNullOrEmpty(xml) && !String.IsNullOrEmpty(xml), "Xaml Serialization failed for " + testObject.GetType() + " no xml string available");

            xml = sb.ToString();
            MemoryStream ms = xml.StringToStream();
            object root = XamlReader.Load(ms);
            Assert.IsTrue(root != null, "After reading from MemoryStream no result for Xaml Serialization");

在我的一个类中,我使用属性Brush。在上面的代码中,这个单元测试失败,因为Brush对象(不是可序列化的)是值。当我移除设置器(如下所示)时,单元测试就通过了。

使用XmlWriter (基本上与上面的测试相同),它可以工作。在StringBuffer sb中,我可以看到Property Brush是在设置器存在时序列化的,而不是在删除时序列化的(很可能是另一个检查,因为没有Setter而忽略了该属性)。使用[XmlIgnore]的其他属性按预期被忽略。

代码语言:javascript
复制
    [XmlIgnore]
    public Brush MyBrush
    {
        get { ..... }
        // removed because of problem with Serialization
        // set { ... }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-03 09:50:18

约翰的评论是正确的。还有其他属性。我在这里找到了一篇很好的文章:http://blogs.msdn.com/b/mikehillberg/archive/2006/09/16/xamlwriter.aspx

我以前甚至遇到过属性[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)],但将它误解为一个设计时属性。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4575555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档