【发布时间】:2012-08-03 19:39:00
【问题描述】:
我按照示例 here 创建了一个 C# 进程外 COM 服务器。
我的服务器是由我无法控制的第三方应用程序使用的。为了找出他们在加载我的组件时需要哪些接口,我想记录他们对 QueryInterface 方法的所有调用。但是,因为我使用的是 .NET,所以我无法自己实现 IUnknown::QueryInterface - 它是由 CCW(COM 可调用包装器)自动提供的。
有没有办法为我的 C# COM 服务器记录对 QueryInterface 的所有调用?
【问题讨论】:
-
您不能根据您提供的链接放置一些日志记录吗?并写入您自己的日志文件..?
-
否,因为 QueryInterface 方法是由 .NET 包装器 (CCW) 自动提供的,我无法在 C# 中实现相应的 IUnknown 接口本身(不允许)。
-
看这个链接checkout第二个答案QueryInterface可以做stackoverflow.com/questions/5077172/…
-
我不想自己在另一个 COM 对象上调用 QueryInterface;相反,我提供了客户端调用我的 QueryInterface 实现的 COM 服务器。但是,因为我的 IUnknown::QueryInterface 实现是由 .NET Interop Framework 自动提供的,所以我无法在其中插入日志记录。还是谢谢
-
你为什么想知道这个?它仅用于记录目的吗?还是代码必须根据请求的接口做出一些决定?
标签: c# .net com interface queryinterface