Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从C订阅托管COM程序集中的COM事件#_C#_Events_Com_Regfreecom - Fatal编程技术网

C# 从C订阅托管COM程序集中的COM事件#

C# 从C订阅托管COM程序集中的COM事件#,c#,events,com,regfreecom,C#,Events,Com,Regfreecom,我有一个.NET3.5应用程序,需要在其中的某个部分使用.NET4。因此,我将.NET4部分公开为一个免注册的COM组件 在.NET 3.5程序集中,我有以下代码,运行良好: Type comClassType = Type.GetTypeFromProgID("A.ProgID"); object comObject = Activator.CreateInstance(comClassType); var managedObj = (IManagedInterface)comObject;

我有一个.NET3.5应用程序,需要在其中的某个部分使用.NET4。因此,我将.NET4部分公开为一个免注册的COM组件

在.NET 3.5程序集中,我有以下代码,运行良好:

Type comClassType = Type.GetTypeFromProgID("A.ProgID");
object comObject = Activator.CreateInstance(comClassType);
var managedObj = (IManagedInterface)comObject;
managedObj.MyMethod(); // call .NET 4 method from .NET 3.5
IManagedInterface的声明如下:

[Guid("ED915810-1B19-4357-9FD4-564CFC0AFAFF")]
[ComVisible(true)]
public interface IManagedInterface
{
    void MyMethod();
    ...
}
[Guid("7BA49B2D-A359-4B70-BEB1-2A61EA63EFA4")]
[ComVisible(true)]
[ComSourceInterfaces(typeof(IMyComEvents))]
public class ManagedComWrapper : IManagedInterface
{
    ...
}
我还有一个事件接口,声明如下:

[Guid("D3633346-EB8B-4F62-A806-3C393D40F694")]
[ComVisible(true)]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface IMyComEvents
{
    void MyEvent()
}
据我所知,根据这篇文章:

我的.NET 4 COM类如下所示:

[Guid("ED915810-1B19-4357-9FD4-564CFC0AFAFF")]
[ComVisible(true)]
public interface IManagedInterface
{
    void MyMethod();
    ...
}
[Guid("7BA49B2D-A359-4B70-BEB1-2A61EA63EFA4")]
[ComVisible(true)]
[ComSourceInterfaces(typeof(IMyComEvents))]
public class ManagedComWrapper : IManagedInterface
{
    ...
}

接下来的问题是:在顶部显示的.NET 3.5客户端中,我如何订阅/处理来自iMyCoEvents的事件?

@HansPassant是的,我的问题中提到了该链接。有没有我遗漏的信息?也许你在找这个: