.NET에서 1 차 인터 로프 어셈블리를 사용하는 이점을 누군가가 설명 할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/204806

  •  03-07-2019
  •  | 
  •  

문제

이 개념은 나에게 새롭고 동료가 제안했습니다. 슬프게도, 나는 그가 무슨 말을하는지 전혀 몰랐다. 누군가 나를 깨달을 수 있습니까?

도움이 되었습니까?

해결책

그것에 대한 많은 정보를 찾을 수 있습니다 여기.

간단히 말해서, PIA는 COM 라이브러리 출판사의 COM 라이브러리에서 유형의 "공식"정의를 제공하는 서명 된 인터 로프 어셈블리입니다.

혜택에 관해서는 게시 된 기사가 꽤 좋습니다.

Pias는 고유 한 유형의 정체성을 제공하기 때문에 중요합니다. PIA는 공식 유형 정의를 다른 Interop 어셈블리에서 제공 한 위조 정의와 구별합니다. 단일 유형 아이덴티티를 사용하면 PIA에 정의 된 유형을 공유하는 응용 프로그램 간의 유형 호환성을 보장합니다. PIA는 출판사에 의해 서명되고 1 차 분량 변환 속성으로 표시되므로 동일한 유형을 정의하는 다른 Interop 어셈블리와 구별 될 수 있습니다.

다른 팁

기본 인터 로프 어셈블리는 COM 인터페이스를 .NET 호환 유형으로 래핑합니다. 그것은 당신에게 방법을 수동으로 호출하는 세분화 된 제어를 제공하지는 않지만 충분히 가깝습니다.

PIA없이 :

object _comObject;
Type _comObjectType;
_comObjectType = Type.GetTypeFromProgID("MyCompany.MyApplication.MyObject", true);
_comObject = Activator.CreateInstance(_comObjectType);

string name = (string)_comObjectType.InvokeMember("GetCustomerName", BindingFlags.InvokeMethod, null, _comObject, , new object [] { _customerId });

PIA와 함께 :

MyCompany.MyApplication.MyObject obj = new MyObject();
string name = obj.GetCustomerName(_customerId);

단순히 예를 들어, 응용 프로그램을 개발하려면 확장 된 기능을 갖춘 다른 사무실 도구 (MS Word, Visio ...)와 비슷한 경우 PIA를 사용하여 프로젝트에서 사무실 도구의 기능을 사용할 수 있습니다. 내 클래스 다이어그램. 앱 그리기, 클래스 다이어그램 생성에 Visio 패널을 사용하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top