c#类的属性在visual basic 6.0中不可见

c#类的属性在visual basic 6.0中不可见,c#,com,vb6,C#,Com,Vb6,我在c#中创建了一个类,并使com visible属性为true。但是,我在VisualBasic6.0上看不到它的属性。有什么问题吗?请帮助我您是否将ComVisible(true)应用于类?定义一个同样是ComVisible的公共接口,并让您的类实现它 然后使用tlbexp.exe从C#程序集生成类型库: tlbexp ComServer.dll /out:ComServer.tlb 您需要从VB6而不是程序集添加对类型库的引用。VB6如何知道程序集的实际位置?君主制就是这样。它相当于.n

我在c#中创建了一个类,并使com visible属性为true。但是,我在VisualBasic6.0上看不到它的属性。有什么问题吗?请帮助我

您是否将
ComVisible(true)
应用于类?

定义一个同样是ComVisible的公共接口,并让您的类实现它

然后使用tlbexp.exe从C#程序集生成类型库:

tlbexp ComServer.dll /out:ComServer.tlb
您需要从VB6而不是程序集添加对类型库的引用。VB6如何知道程序集的实际位置?君主制就是这样。它相当于.net程序集的regsvr32

regasm ComServer.dll

只要在属性(Visual Studio 2005或2008的属性)中将类设置为ComVisible,或者在程序集文件中将ComVisible属性设置为True,就应该能够在VB6中查看类。要获得intellisense,您需要声明一个接口,给它一个GUID,并按照下面的示例代码实现它(注意:您必须为接口和具体类创建自己的唯一GUID)

using System.Runtime.InteropServices;
using System.Drawing;

namespace example_namespace
{

    [Guid("1F436D05-1111-3340-8050-E70166C7FC86")]    
    public interface Circle_interface
    {

        [DispId(1)]
        int Radius
        {
            get;
            set;
        }

        [DispId(2)]
        int X
        {
            get;
            set;
        }

        [DispId(3)]
        int Y
        {
            get;
            set;
        }

    }


    [Guid("4EDA5D35-1111-4cd8-9EE8-C543163D4F75"),
        ProgId("example_namespace.Circle_interface"),
        ClassInterface(ClassInterfaceType.None)]
    public class Circle : Circle_interface
    {

        private int _radius;
        private Point _position;
        private bool _autoRedeye;

        public int Radius
        {
            get { return _radius; }
            set { _radius = value; }
        }


        public int X
        {
            get { return _position.X; }
            set { _position.X = value; }
        }


        public int Y
        {
            get { return _position.Y; }
            set { _position.Y = value; }
        }
    }


}

有时我忘了包括一个通用的词,如public等,每个人都会遇到这种情况,您可能需要重新检查类及其属性访问修饰符。如何将ComVisible(true)设置为类?实际上,我在assemblyinfo.cs中设置了true