이것은 COM 가져 오기를위한 코드 작성 방법에 대한 질문입니다.interop 인터페이스를 올바르게 선언하는 방법에 대한 설명
- 모든 메소드 서명은
- 방법은 정확히 동일한 순서로 나타나야합니다 호환되는 방식으로 일치해야합니다 상호 운용성 인터페이스의 올바른 구현의
나의 이해는 주요 기준이 있다는 것입니다.
- 관리되지 않는 인터페이스가 다른 관리되지 않는 인터페이스에서 상속되는 경우 관리되는 구현은 먼저 기본 인터페이스에서 시작하여 기본 수준의 인터페이스 멤버를 선언해야합니다.
내 질문은; 가져올 인터페이스가 다른 인터페이스에서 상속 받았고 기본 인터페이스의 멤버 중 하나 이상을 무시하거나 숨기는 경우 멤버가 나타나는 순서와 관련하여 무엇을해야합니까? 인터페이스 멤버 선언은 어디에 있습니까? 첫째, 기본 인터페이스에서 선언 한 위치는 어디입니까? 또는 원래 위치에서 제거하고 파생 인터페이스가 선언 한 곳에 배치 할 수 있습니까? C# 코드에 대한 지금
[uuid(31d1c294-1dd2-11b2-be3a-c79230dca297)]
interface BaseComInterface
{
void method1();
void method2();
void method3();
}
[uuid(fab51c92-95c3-4468-b317-7de4d7588254)]
interface DerivedComInterface : BaseComInterface
{
void method1();
void method4();
void method5();
}
는 :
[Guid("fab51c92-95c3-4468-b317-7de4d7588254"), ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IDerivedComInterface
{
void method1(); // do I remove this one?
void method2();
void method3();
void method1(); // or this one?
void method4();
void method5();
}
위대한 답변, 매우 유익한, 감사합니다! –