gpt4 book ai didi

c# - 生产代码中的 PrivateObject 而不是 Reflection

转载 作者:太空宇宙 更新时间:2023-11-03 17:53:04 25 4
gpt4 key购买 nike

“反射”是指使用 System.Reflection 命名空间。

MSDN 谈到 PrivateObject 类:“允许测试代码......”。与 System.Reflection 相比,我更喜欢 PrivateObject 语法,所以我想知道是否有真正的理由不在生产代码中使用它,而只保留它用于单元测试?

最佳答案

我可以告诉您不在生产环境中使用 PrivateObject 的一个原因是需要将测试程序集 (Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll) 部署到生产服务器。那不是他们应该在的地方。但是,如果它不会损害您工作地点的任何政策,则由您决定是否使用它。

顺便说一句,PrivateObject 内部使用反射,所以无论如何你都要使用它。

我发现这个解决方案使用动态对象来调用私有(private)成员(http://blogs.msdn.com/b/davidebb/archive/2010/01/18/use-c-4-0-dynamic-to-drastically-simplify-your-private-reflection-code.aspx),因为你不喜欢反射的语法。也许你应该试试。

关于c# - 生产代码中的 PrivateObject 而不是 Reflection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18619236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com