を使用して、クラスPrivateObject
のインスタンスを作成しようとしています(ここにあります)。デバッガーと Visual Studio 2008 のオブジェクト ブラウザーを調べたところ、setter 以外のプロパティに関連するものは見つかりませんでした。以下は私が使用しているコードです。ItemChange
ItemId
var itemChange = new PrivateObject(typeof(ItemChange));
itemChange.SetFieldOrProperty("ChangeType", _fixture.CreateAnonymous<ChangeType>());
itemChange.SetFieldOrProperty("ItemId", _fixture.CreateAnonymous<ItemId>());
私が受け取るエラーは次のとおりです。
System.MissingMethodException : Method 'Microsoft.Exchange.WebServices.Data.ItemChange.ItemId' not found.
のバリエーションを試しましたがBindingFlags
、何も役に立たないようです。セッターがなく、ゲッターのみのプロパティを設定するにはどうすればよいですか?
編集
私のコメントに関しては、PrivateObject
オブジェクト インスタンスを作成して設定できる他のインライン クラスItemId
はItemEvent
クラスです (ここにあります)。このクラスは簡単でした。なぜなら、デバッグ中にこのクラスをウォッチ リストに追加したときにitemId
、プライベート変数として表示されたからです。ただし、ItemChange
クラスで同じ手順を実行しても、セッターしかないプロパティ自体以外のフィールドの痕跡は見つかりません。これは、このプロパティを設定する方法に困惑しているところです。ItemId
最後に、クラスを逆コンパイルして何が何であるかを確認できるツールにアクセスできません。