0

我有一个代码生成的类,它具有一组属性。我想为这些属性添加额外的属性,但我不能在代码生成的类上这样做。因此,我使用MetadataTypeAttribute来装饰辅助类的附加属性;

// Code generated class - can't touch this
public partial class MyClass
{
    public MyType MyProperty { get; set; }
}

// Partial class allowing extended attributes
[MetadataType(typeof(MyClass_AdditionalAttributes))]
public partial class MyClass
{
}

// Defines extra attributes to be appended to
// properties that match in the partial class
public class MyClass_AdditionalAttributes
{
    // Do not serialise the MyProperty property
    [XmlIgnore]
    public MyType MyProperty;
}

但是,这不起作用。使用 .NET 反射器,XmlIgnoreAttribute不装饰MyClass.MyProperty属性。谁能看到我做错了什么?

4

1 回答 1

0

我遇到了同样的问题(使用ScriptIgnore而不是XMLIgnore)并且无法使其工作。最后,我将设计器属性设为私有,并使用我想要的属性在外部部分类中定义公共属性,只需获取和设置私有属性。

于 2013-08-21T13:09:39.737 回答