给定一个特定的类:
public class Klass
{
public int value;
public void doSomething(){
return;
}
}
为了使所述类 COM 可见,据我所知,需要做几件事:
进口 System.Runtime.InteropServices
为类创建一个接口。
扩展创建的接口。
创建 2 个唯一的 GUID,一个用于接口,另一个用于类。
将调度 ID 添加到接口。
生产类似的东西:
[Guid("EAA4976A-45C3-4BC5-BC0B-E474F4C3C83F")]
public interface IKlass
{
[DispId(0)]
public int value;
[DispId(1)]
public void doSomething();
}
[Guid("0D53A3E8-E51A-49C7-944E-E72A2064F938"),
ClassInterface(ClassInterfaceType.None)]
public class Klass : IKlass
{
public int value;
public void doSomething(){
return;
}
}
在我看来,生成的代码看起来非常恶心……问题是,是否有一种更简单的方法来创建这些 COM 接口?我可以想象自己修改构建过程以提供interop功能。例如
public interop class Klass
{
public interop int value;
//...
}
然而,这是非标准的,这也有它的问题。是否有任何内置到 Visual Studio/C# 的东西可以让我更容易/更清晰地构建 COM 接口?
狐的传说
墨色风雨
相关分类