이 개념은 나에게 새로운 개념이며 동료가 제안했습니다. 슬프게도, 나는 그가 무슨 말을하고 있는지 전혀 몰랐다. 누군가가 나를 계몽 할 수 있습니까?누군가가 .Net의 주 Interop 어셈블리를 사용할 때의 이점을 설명 할 수 있습니까?
8
A
답변
12
많은 정보를 찾을 수 있습니다 here.
간단히 말해서 PIA는 COM 라이브러리의 게시자가 COM 라이브러리에서 "공식적인"형식 정의를 제공하는 서명 된 interop 어셈블리입니다. 이점에 관해서는
는 게시 된 기사는 꽤 좋은 그것을 요약 : 그들은 고유 한 유형 ID를 제공 때문에
PIA를 중요하다. PIA 은 다른 유형의 interop 어셈블리에서 제공하는 공식 형식 인 과 위조 된 것으로 정의 된 을 구별합니다. 단일 유형을 사용하면 PIA에 정의 된 유형을 공유하는 응용 프로그램간에 유형 호환성 이 보장됩니다. PIA는 해당 게시자 및 PrimaryInteropAssembly 특성 표지 의해 서명되기 때문에, 는 같은 다른 유형을 정의 interop 어셈블리 구별 될 수있다.
3
기본 interop 어셈블리는 COM 인터페이스를 .NET 호환 유형으로 래핑합니다. 수동으로 메소드를 호출하는 것은 세부적인 제어는 아니지만 충분히 가깝습니다.
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와 :하십시오 PIA없이
당신은 응용 프로그램이 다른 사무실 도구와 같은 유사 (MS 워드를 개발하려는 경우
MyCompany.MyApplication.MyObject obj = new MyObject();
string name = obj.GetCustomerName(_customerId);
1
간단히, 예를 말하고, Visio가 ...) 확장 기능을 사용하면 PIA를 사용하여 프로젝트에서 Office 도구의 기능을 사용할 수 있습니다. 클래스 다이어그램 그리기 응용 프로그램에서 클래스 다이어그램 만들기를 위해 visio 패널을 사용하십시오.
* 모든 * Interop 어셈블리는 PIA – Joe