문제
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)]
제휴하지 않습니다 StackOverflow