使用 a PrivateObject
,我正在尝试创建ItemChange
该类的实例(在此处找到)。查看调试器以及 Visual Studio 2008 中的对象浏览器,除了 setter 之外,我似乎找不到与该属性相关的任何内容。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
,但似乎没有任何帮助。如何设置没有 setter 而只有 getter 的属性?
编辑
关于我的评论,我可以创建PrivateObject
对象实例并设置的另一个内联类ItemId
是ItemEvent
类(在此处找到)。这个类很简单,因为当我调试并将该类添加到我的监视列表中时,我可以将itemId
其视为私有变量。但是,在类上执行相同的步骤时,除了只有一个 setter的属性本身之外,ItemChange
我找不到任何字段的痕迹。这是我对如何设置此属性感到困惑的地方。ItemId
最后,我无法使用可以让我反编译类并查看什么是什么的工具。