두 개의 프로젝트가 있습니다. .net 핵심 웹 프로젝트와 .net 4.6.2 클래스 라이브러리. 내 클래스 라이브러리는 com을 통해 외부 소프트웨어 패키지에서 필요한 기능을 마무리합니다.C# 동적 COM 시스템 .__ ComObject
내가 다루는 com 유형은 클래스 라이브러리 참조에 추가했기 때문에 강력한 형식의 인스턴스를 정의 할 수 있습니다.
내 이슈가 시작되는 곳은이 com 라이브러리의 특정 속성과 메소드도 System .__ ComObject를 반환한다는 것입니다. Dynamic을 사용하여 선언 한 이러한 반환 객체이므로 읽기가 정확하면 런타임 바인딩이 속성 및 메서드에 액세스하는 데 사용됩니다.
그러나 내 웹 API에서 클래스 라이브러리를 호출 할 때 속성/메서드가 System._ComObject에 없다는 오류가 나타납니다. 내 클래스 라이브러리 양식에 대한 정확한 호출을 실행할 수 있습니다. .net 4.6.2 데스크톱 응용 프로그램에 아무런 문제가 없습니다.
.net 핵심 프로젝트에서 호출 할 때 클래스 라이브러리가 런타임 바인딩을 수행하지 못하게하는 것이 무엇이 잘못 되었습니까?
닷넷 4.6.2 클래스 간단한까지 스캐 폴딩 컨트롤러이 생각하는 모든
public static List<Job> GetJobList()
{
List<Job> retVal = new List<Job>();
//Create Accounts instance - external software package
Accounts accounts = new Accounts()
accounts.Login();
dynamic accountsSettings = accounts.GetSettings();
//accountSettings Type = System.__ComObject
String systemPath = accountsSettings.SystemPath;
//Exception here: System.__ComObject does not contain definition for 'SystemPath'
//Other code here to build list of jobs
return retVal;
}
웹 응용 프로그램과 라이브러리를 호출 해 보았습니까?) .net 4.6.2 (.net 코어가 아님)? 또한 앱의 비트 수 (x86 vs x64)를 확인 했습니까? 그렇지 않으면 어떤 재생산 코드 –
Ta를 보내 주시면 답장을 보내 드리겠습니다. @Simon Mourier, bitness를 확인하십시오. 모든 것이 정렬됩니다. .net 4.6.2 웹 응용 프로그램으로 테스트 해보십시오. 데스크톱 응용 프로그램만큼 잘 작동합니다. – Hursey