リフレクションを介してプライベートプロパティを設定できますか?
public abstract class Entity
{
    private int _id;
    private DateTime? _createdOn;
    public virtual T Id
    {
        get { return _id; }
        private set { ChangePropertyAndNotify(ref _id, value, x => Id); }
    }
    public virtual DateTime? CreatedOn
    {
        get { return _createdOn; }
        private set { ChangePropertyAndNotify(ref _createdOn, value, x => CreatedOn); }
    }
}私は次のことを試してみた、どこでそれが、動作しないtの種類を表しますEntity。
var t = typeof(Entity);
var mi = t.GetMethod("set_CreatedOn", BindingFlags.Instance | BindingFlags.NonPublic);これはできると思いますが、うまくいきません。
                
                2
              
                  私はこれが遅いことを知っていますが、私は自分の「なぜ」を共有したいというこの考えの必要性を見つけました。一部のサードパーティソフトウェアの不便さを克服する必要がありました。具体的には、Crystal ReportsのExportToStreamメソッドを使用していました。このメソッドの記述方法では、ストリームの内部バッファーへのアクセスは許可されていませんでした。レポートをブラウザーに送信するために、ストリームを新しいバッファー(100K +)にコピーしてから送信する必要がありました。ストリームオブジェクトのプライベート「_exposable」フィールドを「true」に設定することで、内部バッファーを直接送信でき、各リクエストで100K以上の割り当てを節約できました。
                
                
                  
                    —
                    レイ
                    
                  
                
              
                  どうして?すべてのドメインオブジェクトのIdプロパティにプライベートセッターがあり、リポジトリテストを実装するとします。次に、リポジトリテストプロジェクトでのみ、Idプロパティを設定できるようにします。
                
                
                  
                    —
                    bounav 2010年
                    
                  
                
              
                  別の使用シナリオ:データのインポート時に「作成日」などの自動生成フィールドを設定する。
                
                
                  
                    —
                    ANeves 2014年
                    
                  
                
              
                  もう1つの理由は、それが可能であるかどうか私が知りたいだけなのです。それが私がこの質問を見ることになった方法です。
                
                
                  
                    —
                    カレブマウアー