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

XMLIgnoreの代わりにScriptIgnoreを使用して同じ問題が発生し、機能させることができませんでした。最後に、デザイナー プロパティをプライベートにし、プライベート プロパティを取得して設定するだけで、必要な属性を持つ外部部分クラスでパブリック プロパティを定義しました。

于 2013-08-21T13:09:39.737 に答える