次のプロパティを取得します。
public string Foo
{
get;
private set;
}
リフレクションを使用すると、所有するクラスの外部からこのプロパティの値を設定できます。これを防ぐ方法はありますか?set アクセサーを削除することは、WCF フレンドリーでなければならないため、オプションではありません。
次のプロパティを取得します。
public string Foo
{
get;
private set;
}
リフレクションを使用すると、所有するクラスの外部からこのプロパティの値を設定できます。これを防ぐ方法はありますか?set アクセサーを削除することは、WCF フレンドリーでなければならないため、オプションではありません。
ジョン・スキート言います:
呼び出し元が「完全な信頼」を持っている状況で使用されているリフレクションを (AFAIK) 停止することはできません。それらが完全に信頼されていない状態で実行されている場合、リフレクションに関するいくつかのこと (すべてではないにしても) が自動的に無効になると思います。 そもそもあなたが彼らのボックスをコントロールしていない限り、完全に信頼してコードを書いてください。
本当に厄介な解決策は、StackTraceクラスを使用して、独自のクラスのメソッドのみがセッターを呼び出すことを確認することです。