13

自動プロパティゲッターとセッターを持つモデルにプロパティがあります:

[DataMember]
public Collection<DTOObjects> CollectionName { get; set; }

ソリューションのビルド時に次のエラーが発生します。

Microsoft.Usage : プロパティ セッターを削除して、'propertyname' を読み取り専用に変更します。

しかし、setter を削除してコードを実行すると、プロパティを設定しようとしているためにエラーが発生します。コードのどこかに設定されているにもかかわらず、セッターを削除するように求めているようです。

他の誰かがこの問題に遭遇しましたか? 何を変更する必要がありますか?

4

4 に答える 4

12

これはリスト/コレクション (または同様のもの) であると推測します。その場合、はい - セッターを持つことは珍しいことです。典型的な例は次のとおりです。

private readonly List<Foo> items = new List<Foo>();
public List<Foo> Items { get { return items; } }

ほとんどの呼び出し元は、それに割り当てようとしないでください。必要はありません-リストを割り当てる必要なく、リストを追加/削除/列挙/クリア/などできます。

プロパティを設定しようとしているため、エラーが発生します

次に、プロパティを設定しようとしないように、そのコードを変更することを検討してください。事実上すべての場合に必要ではありません

于 2012-10-26T08:57:38.813 に答える
0

それを抑制し、エラーを右クリックしてコードで抑制をクリックすると、属性がプロパティに追加されます。

通常、リストを置き換えることができるため、コレクションのパブリック セットは使用しないでください。ただし、実行時に作成または逆シリアル化されるオブジェクトでは、パブリック セッターが必要になることがあります。

于 2012-10-26T08:57:29.527 に答える