创建要在C#中使用的托管C ++接口

时间:2015-05-21 22:56:49

标签: c# .net com c++-cli dcom

我们有一组用C ++ / CLI包装的Native C ++业务规则,然后是C#层,所以我们可以通过DCOM公开它。

Native C ++业务规则位于DLL中,可以在COM可见DLL中的C ++ / CLI中轻松调用。然后,我们将此DLL添加为对C#项目的引用。

C#层有许多派生自ServicedComponent的类,我们应用regsvcs将其注册为DCOM服务器。

但是,需要C ++ / CLI层与C#层进行通信。为此,我考虑使用C#样式界面。 C#层将从接口派生并传递给C ++ / CLI层,然后C ++ / CLI层可以在其上调用方法以在C#层中发生某些事情。为了可见性,需要在C ++ / CLI层中声明此接口。这是我的问题,我似乎无法实现这一点。

有没有办法在C ++ / CLI中声明C#样式接口,然后在C#中使用它?

1 个答案:

答案 0 :(得分:1)

有(https://msdn.microsoft.com/en-us/library/737cydt1.aspx):

#pragma managed
using namespace System;

public interface class MyInterface
{
    void MyFunction();
}

用于C#:

public class MyClass : MyInterface
{
    public void MyFunction() { }
}