Visual Studio 中的私有对象

2023-12-10

我正在使用 Visual Studio 2019,并在 MSTest 测试项目(.NET Core)中尝试使用PrivateObject测试受保护的方法。

例如,我正在尝试执行以下操作

PrivateObject private = new PrivateObject(new Color())

但我收到以下错误

找不到 PrivateObject 是否缺少 using 指令或程序集引用?

我还包括

using Microsoft.VisualStudio.TestTools.UnitTesting;

我认为其中会包括PrivateObject.


I think PrivateObject.Net Core 中不存在。 您可以使用这些扩展来调用非公共成员。

public static T CallNonPublicMethod<T>(this object o, string methodName, params object[] args)
        {
            var type = o.GetType();
            var mi = type.GetMethod(methodName, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);

            if (mi != null)
            {
                return (T)mi.Invoke(o, args);
            }

            throw new Exception($"Method {methodName} does not exist on type {type.ToString()}");
        }

public static T CallNonPublicProperty<T>(this object o, string methodName)
        {
            var type = o.GetType();
            var mi = type.GetProperty(methodName, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);

            if (mi != null)
            {
                return (T)mi.GetValue(o);
            }

            throw new Exception($"Property {methodName} does not exist on type {type.ToString()}");
        }

你可以像这样使用它们:

var color= new Color();
var result= color.CallNonPublicMethod<YourReturnType>(YourMethodName, param1, param2, ... param n);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio 中的私有对象 的相关文章

  • 运行应用程序时.NET 3.5 JIT 不工作

    以下代码在 Visual Studio 内部运行该版本和在 Visual Studio 外部运行该版本时提供不同的输出 我正在使用 Visual Studio 2008 并面向 NET 3 5 我也尝试过 NET 3 5 SP1 在 Vis
  • Task.Factory.StartNew 或 Parallel.ForEach 对于许多长时间运行的任务? [复制]

    这个问题在这里已经有答案了 可能的重复 Parallel ForEach 与 Task Factory StartNew https stackoverflow com questions 5009181 parallel foreach
  • 不同提供商的相同 EDMX 文件

    我正在开发一个项目 其中有一个本地数据库 SQL CE 在不存在与服务器的连接的情况下用作缓冲区 在服务器上我想使用相同的数据库布局 当然 我想使用服务器和客户端上可用的 Common dll 中的相同 EDMX 文件 在客户端中 我有一个
  • 获取 TextBox 中的文本行数

    我试图通过标签显示文本框中的文本行数 但是 问题是如果最后一行为空 标签必须显示没有空行的行号 例如 如果它们有 5 行 最后一行为空 则标签应将行数显示为 4 Thanks private void txt CurrentVinFilte
  • 如何向WebRequest添加参数?

    我需要从 Web 服务调用一个方法 所以我编写了以下代码 private string urlPath http xxx xxx xxx manager string request urlPath index php org get or
  • 读取大文件并制作字典

    我有一个大文件 我需要读取它并从中制作字典 我希望这一切能够尽可能快 然而我的Python代码太慢了 这是一个显示问题的最小示例 首先制作一些假数据 paste lt seq 20000000 lt seq 2 20000001 gt la
  • std::bind2nd 和 std::bind 与二维数组和结构数组

    我知道 C 有 lambda 并且 std bind1st std bind2nd 和 std bind 已弃用 然而 从C 的基础开始 我们可以更好地理解新特性 所以 我从这个非常简单的代码开始 使用int 数组s 第一个例子 与std
  • C语言中没有循环可以打印数组吗?

    例如 在Python中 如果我们将一个列表作为数组 它会直接用一行代码打印整个数组 有什么办法可以用C语言实现同样的事情吗 简短回答 No 对表格上几乎所有问题的简短回答 用 C 语言做 X 工作能像用 Python 一样简单吗 No 长答
  • C# 实体框架我们应该使用 POCO.Id 还是仅使用 POCO 设置关系?

    我在服务方法中遇到一种情况 将 POCO 分配为另一个 POCO 的子对象无法按预期工作 我正在使用实体框架 4 public void ChangeOrderCurrency Currency currency order Currenc
  • 多个线程访问一个变量

    我在正在读的一本教科书中发现了这个问题 下面也给出了解决方案 我无法理解最小值怎么可能是 2 为什么一个线程不能读取 0 而所有其他线程都执行并写入 1 而无论是1还是2 最后写入的线程仍然必须完成自己的循环 int n 0 int mai
  • 使用 catch all 字典属性将 json 序列化为对象

    我想使用 JSON net 反序列化为对象 但将未映射的属性放入字典属性中 是否可以 例如给定 json one 1 two 2 three 3 和 C 类 public class Mapped public int One get se
  • 文件加密与解密问题

    我一直在尝试在 VC Express 2010 中加密和解密文件 我见过的所有教程和文档都需要两个FileStreams 来加密文件 一个用于读取未加密的版本 另一个用于加密 当我实际编写代码时 它不断抛出错误 告诉我它无法打开该文件 因为
  • 如何解决文件被另一个进程使用的问题?

    我一直在 VS NET 2010 中调试 没有任何问题 但现在无法建造 我收到错误 Unable to copy file filename to bin Debug filename The process cannot access t
  • 如何使用 C# 将表格粘贴到 Ms-Word 文档的末尾

    我有一个预制的 Word 模板 其中有一个表格 我想打开它 然后在文档末尾添加 粘贴 另一个表格 问题是它不会转到文档的末尾 而是将新表格粘贴到原始表格的第一个单元格中 任何帮助将不胜感激 previous code copied a ta
  • 使用联合对 IP 地址进行多种解释?

    在工作中 我们使用以下构造来将 IP 地址解释为 4 字节数组或 32 位整数 union IPv4 std uint32 t ip std uint8 t data 4 这很好用 但是读完这本书的第 97 章 不要使用联合来重新解释表示
  • 检查另一种形式的线程是否仍在运行

    我有一个涉及两个窗体的 Windows 窗体应用程序 子表单用于将数据导出到 CSV 文件 并使用后台工作者写入文件 当这种情况发生时 我隐藏了表格 当后台工作程序运行时 父窗体仍然处于活动状态 因此即使后台工作程序正在写入文件 用户也可以
  • C# 和断点 - 这里有魔术师吗?

    我有这个 public static void ByLinkText string text for var i 0 i lt 50 i try Setup Driver FindElement By LinkText text Click
  • 在两个点之间创建一条曲线,每个点都具有标准化向量

    因此 我需要一种写入方法来在两点之间创建一条曲线 每个点都有一个指向任意方向的归一化向量 我一直在尝试设计这样一种方法 但一直无法理解数学 在这里 由于一张图片胜过一千个文字 这就是我所需要的 在图中 矢量垂直于红线 我相信向量需要进行相同
  • 是否可以检测流是否已被客户端关闭?

    简要介绍一下情况 我有一项服务可以通过套接字接收信息并发送回复 连接不安全 我想设置另一个可以为这些连接提供 TLS 的服务 这个新服务将提供单个端口并根据提供的客户端证书分发连接 我不想使用 stunnel 有几个原因 其中之一是每个接收
  • 如何创建实体集或模型而不在数据库中创建相应的表 - 实体框架

    我的 sqlserver 数据库中有一个存储过程 它返回多个结果集 我正在使用 msdn 中的以下链接从实体框架中的 SP 读取多个结果集 https msdn microsoft com en us library jj691402 v

随机推荐

  • 所有属性上的 INotifyPropertyChanged

    考虑到一个具有大量属性的类 我想实现一个 Dirty 标志 以便知道是否应该更新数据库中的值 有什么办法可以提高PropertyChangedon 所有属性 而无需手动检查并在设置器中将其拔出 编辑以澄清一些事情 我确实浏览了此处链接的线程
  • 为什么使用“pickle”转储比“json”快得多?

    这是针对 Python 3 6 的 编辑并删除了很多无关紧要的内容 我以为json比pickleStack Overflow 上的其他答案和评论让很多人看起来也相信这一点 我的测试合格吗 差距比我想象的要大得多 我在非常大的物体上测试得到了
  • MySQL 选择特定值的最新行

    我正在努力思考如何生成一个能够注意到正确结果的 MySQL 查询 我有一个表 其结构如下 工作流程状态历史记录 id reference status 1 308ffn3oneb Lead Received 2 308ffn3oneb Qu
  • 如何将2个变量求和并将其存储到一个变量中

    我有一个包含 2 个不同子报告的主报告 我有一个来自 subreport1 的变量 sum 例如 10 整数类型 我有来自另一个 subreport2 的另一个变量 sum 例如 2 整数类型 I have 成功从每个子报表中检索了 2 个
  • 获取两个单词之间的文本[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我需要知道如何获取两个给定单词之间的单词 不幸的是我不知道该怎么做 例如 你好 美好的一
  • 使用存储过程作为 MS Access 表单记录源

    现在 我有一个数据库 带有 SQL Server 后端和 MS Access 前端 在一种表单上 我的用户的显示加载时间很慢 该表单本质上是查找用户是谁 基于他们的登录 ID 这部分有效 查看他们的访问权限 只读 v 更新等 这也有效 然后
  • 如何将范围对象插入公式中

    我想将范围对象插入公式中 一个示例应该大致如下所示 Dim x As Range Set x Range Cells 1 1 Cells 2 1 Range C1 Formula SUM x 单元格 C1 中的结果应为 SUM A1 A2
  • 在单个四开 PDF 输出中创建多页面方向

    这个想法是复制 PDF 输出rmarkdown in quarto在本例中 是在单个文档上创建多页方向 在rmarkdown我可以用这个轻松做到trick 但是 我无法在四开本中执行此操作 它会不断发送错误消息 compilation fa
  • GWT - 在共享文件夹中放置什么?

    我仍然不确定要放入什么shared文件夹 如果我正在执行 RPC 请求 并将 Pojos 从客户端发送到服务器 反之亦然 我是否必须将它们放入shared文件夹 因为它们被客户端和服务器使用 EDIT 也许我用错了术语但是当我说Pojo我其
  • 将 JQuery 确认添加到任意元素的最佳不显眼的方法

    我是 jquery 的新手 正在寻找一种好的 不显眼的方法来将 javascript confirm 的 jquery 替换添加到 HTML 元素 具体来说 我希望能够将它用于 ASP NET 按钮 LinkBut tons ImageBu
  • jqGrid 将纪元时间(从毫秒开始)显示为日期时不排序

    我使用 jqGrid 我的网格定义是这样的 colNames Type Date Message User Name Host colModel name type index type width 100 name date index
  • 如何打开和关闭自动亮度? (不重复)

    我只是想打开和关闭自动亮度 我从这段代码开始 在 onCreate 方法内 final ToggleButton autoBrightToggle ToggleButton findViewById R id brightToggle di
  • slickgrid 使用正则表达式验证列

    有一个带有列验证的简单示例 function requiredFieldValidator value if value null value undefined value length return valid false msg Th
  • 在 MEX 函数中将特征复数矩阵返回到 MATLAB,无需额外复制

    这个问题演示如何使用映射对象将双精度矩阵返回到 MATLAB 以下适用于非复杂数据 double outputPtr plhs 0 mxCreateDoubleMatrix mwSize n mwSize m mxREAL outputPt
  • 使用核心图时应用程序崩溃

    Unknown class CPTGraphHostingView in Interface Builder file 2012 01 09 16 09 34 242 ChartArea 2595 207 UIView setHostedG
  • 将函数应用于 pandas Dataframe,其返回值基于其他行

    我有一个如下所示的数据框 gt gt gt import pandas gt gt gt df pandas DataFrame region east west south west east west east west item on
  • 如何垂直对齐

    我有一个水平的 ul 我需要将每个都居中 li 垂直地在其中 我的标记如下 每个 li li 有边框 我需要项目及其内容垂直位于中间 请帮忙 我是 CSS 新手 li ul
  • Twitter认证后回调

    我正在尝试将 Twitter 集成到我的应用程序中 但我似乎无法让它工作 这是我的代码 public class OAuthForTwitter extends Activity private CommonsHttpOAuthConsum
  • NextJS 在 MDX 中导入图像

    我尝试了官方 NextJS MDX Blog 示例 https github com mdx js mdx tree master examples next 但我无法弄清楚如何设置 NextJS 配置以通过 webpack 加载图像 im
  • Visual Studio 中的私有对象

    我正在使用 Visual Studio 2019 并在 MSTest 测试项目 NET Core 中尝试使用PrivateObject测试受保护的方法 例如 我正在尝试执行以下操作 PrivateObject private new Pri