전화를 걸고있는 타사 .net dll을 사용 중입니다. 나는 코드를 단순화하고 있지만, 이와 같은 것이다.반영된 형식과 일치하는 메서드 만들기
// The assembly has already been loaded into 'ass'
Type params = ass.GetType("RemoteCalls.ParametersDelegate");
Delegate UseDel = Delegate.CreateDelegate(params, this, "MyGetParams");
나는 다음 반사 된 객체에이 위양 (UseDel)를 통과 할 수 있고,가 필요로 할 때 그것은 MyGetParams를 호출합니다.
내가 겪고있는 문제는 메서드 서명이 타사 DLL 내에서 형식으로 구성되어 있다는 것입니다.
ParametersDelegate의 서명은 ...
Parameters GetPars();
그래서, 내 방법이 올바른 유형 (매개 변수)를 반환 할 수 없습니다. 나는
Delegate UseDel = Delegate.CreateDelegate(params, this, "OtherDelegates<xxx>.MyGetParams");
..
private static class OtherDelegates<T>
{
public static T MyGetParams()
{
//... code to build up the 'Parameters' class, and return it.
}
}
그런 다음 호출 .. 다음 시도하지만 'XXX'에 넣어 무엇을 작동하지 않을 수 있습니다.
CodeDomProvider을 사용하여이 작업을 수행 할 수 있다고 생각하지만 간단한 방법이 있는지 궁금하십니까?
또한 라이선스 문제로 인해 DLL을 참조로 추가하는 옵션이 아닙니다.
감사합니다. 리치.
라이선스 문제가 참조로 * 영향을받는 경우 동일한 라이선스 문제가 어떻게 반영되는지 * 반영하지 않음 * 리플렉션을 사용하여 볼 수 없음 * 더 자세하게 얘기해 주 시겠어요? 이것은 매우 모호한 추측으로 들립니다 ... –
설치/avilable 경우 내 소프트웨어가이 DLL을 활용할 수 싶습니다, 그것을 그것에 의존하고 싶지 않아요. 또한, 개발 관점에서, 나는 모든 개발 기계에이 써드 파티 DLL을 설치하지 않아도된다. 어쨌든, 나는 라이센싱 문제가 아니라 코딩 문제를 해결하려고합니다. –
또한 타사 소프트웨어에 대한 라이센스 수가 제한되어 있으므로 주 소프트웨어를 설치할 때마다 출시 할 수 없습니다. –