我将 COM 与旧的 VB6 应用程序一起使用。
我将代码更改为在接口中使用 DispID,因为它似乎比使用[ClassInterface(ClassInterfaceType.AutoDual)]
.
但是是否允许从 DispID(1) 开始计数的每个接口,即使一个类使用两个接口?
它以这种方式工作稳定吗?还是我误解了什么?
[ComVisible(true)]
[Guid("9E1125A6-...")]
public interface IMyInterface1
{
[DispId(1)]
string Name1 { get; }
}
[ComVisible(true)]
[Guid("123425A6-...")]
public interface IMyInterface2
{
[DispId(1)]
string Name2 { get; }
}
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
class MyClass : IMyInterface1, IMyInterface2
{
public string Name1 { get { return "Name1"; } }
public string Name2 { get { return "Name2"; } }
}