문제

C# 클래스 라이브러리를 만들었고 VB 6.0 응용 프로그램을 통해 사용하고 있습니다. 그러나 어떤 메소드를 호출하려고 할 때 (문자열을 반환) 자동화 오류가 발생합니다. C# 클래스는 그렇지 않으면 잘 실행됩니다.

이유가 있습니까?

도움이 되었습니까?

해결책

FBINDER가 말했듯이, 당신은 어셈블리에 서명하고 일부 속성을 사용해야합니다. 우리가 사용하는 속성 (성공적으로)은 다음과 같습니다.

[ComVisible( true )]
[ClassInterface( ClassInterfaceType.None )]
[Guid( "00000000-0000-0000-0000-000000000000" )]
[ComDefaultInterface( typeof( IExposedClass ) )]
public class ExposedClass : IExposedClass
{
    //need a parameterless constructor - could use the default
    public ExposedClass() { }

    public string GetThing()
    {
        return "blah";
    }
}

[ComVisible( true )]
[Guid( "00000000-0000-0000-0000-000000000000" )]
[InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
public interface IExposedClass
{
    string GetThing();
}

다른 팁

클래스 라이브러리에 서명하고 Regasm에 등록하고 클래스 정의 전에 다음을 넣어야합니다.

[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
[Guid("Class GUID")]

또한 원하는 방법을 노출시키기 위해 인터페이스를 정의해야합니다. 인터페이스에는 속성이 있어야합니다.

 [Guid("Interface GUID")]
 [ComVisible(true)]
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top