gpt4 book ai didi

c# - 为什么我不应该使用 AutoDual?

转载 作者:太空狗 更新时间:2023-10-29 17:35:28 28 4
gpt4 key购买 nike

到目前为止,我总是用 [AutoDual] 属性修饰我想在 VB6 中使用的 .NET 类。重点是在 VB6 环境中获得 .NET 对象的 Intellisense。然而,前几天我用谷歌搜索了 AutoDual,第一个答案是“不要使用 AutoDual”。

我一直在寻找为什么我不应该使用它的连贯解释,但找不到。

有人能解释一下吗?

最佳答案

我找到了一种可靠的方法来为 VB6 中的 .NET 对象提供智能感知,同时又不破坏接口(interface)。关键是在接口(interface)中的每个公共(public)方法/属性都用DispatchID来标记。然后类必须从这个接口(interface)继承 - 以下面的方式。

[Guid("BE5E0B60-F855-478E-9BE2-AA9FD945F177")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface ICriteria
{
[DispId(1)]
int ID { get; set; }
[DispId(2)]
string RateCardName { get; set; }
[DispId(3)]
string ElectionType { get; set; }
}


[Guid("3023F3F0-204C-411F-86CB-E6730B5F186B")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("MyNameSpace.Criteria")]
public class Criteria : ICriteria
{
public int ID { get; set; }
public string RateCardName { get; set; }
public string ElectionType { get; set; }
}

调度 ID 为您提供了在类中移动项目的能力,而且您现在可以向类中添加新内容,而不会破坏二进制兼容性。

关于c# - 为什么我不应该使用 AutoDual?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2714430/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com