2008-10-15 4 views

답변

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); 
+5

* 모든 * Interop 어셈블리는 PIA – Joe

1

간단히, 예를 말하고, Visio가 ...) 확장 기능을 사용하면 PIA를 사용하여 프로젝트에서 Office 도구의 기능을 사용할 수 있습니다. 클래스 다이어그램 그리기 응용 프로그램에서 클래스 다이어그램 만들기를 위해 visio 패널을 사용하십시오.