6

据我所知,Visual Studio 2012 不支持私有访问器。你能给我一些关于可能的替代方案的信息吗?PrivateObject.Invoke() 对我来说不是最好的解决方案。

先感谢您!

4

3 回答 3

7

将您的成员标记为“内部”并使用 InternalsVisibleTo 属性。使用简单,没有类型安全问题。

于 2012-07-07T00:41:19.457 回答
0

我开始使用动态私有访问器功能,它是 nuget 包Chaining Assertion for MSTest 的一部分,我对此非常满意。一个失去强类型,但至少语法仍然可读。这适用于动态功能。还有其他测试框架的包。测试代码如下所示:

var target = CreateMyObjectUnderTest();
dynamic dynamicTarget = target.AsDynamic();
Assert.AreEqual("abc", dynamicTarget.MyPrivateProperty);
Assert.AreEqual("xyz", dynamicTarget.PrivateMethod(123));
于 2014-08-27T07:30:06.190 回答
0

也许这个发布的 Visual Studio 2012+ 的自制私有访问器将帮助您创建自己的私有访问器。

问候,

斯特凡

于 2013-09-23T09:11:11.820 回答