2009-03-13 4 views
2

내 C# 응용 프로그램과 다른 응용 프로그램 사이에 Scripting.Dictionary를 전달해야합니다. C# 응용 프로그램에서 인스턴스를 만들고 사전을 수정할 수 있기를 바랍니다.C#의 Scripting.Dictionary 사용

저는 Scripting.Dictionary와 ActiveX에 대해 거의 알지 못합니다. 다양한 포럼에서는 System.Type.GetTypeFromProgID() 및 System.Activator.CreateInstance()와 같은 함수를 사용하여 인스턴스를 만들어야한다고 제안합니다. 불행히도 이것은 나머지 코드에 대해서는 불투명 한 객체라는 것을 의미합니다.

이것이 실제로 어떻게 이루어 지거나 좋은 방법이 있습니까? 이상적으로는 컴파일 타임 형식을 가져오고 다른 형식과 마찬가지로 사용하고 싶습니다. 이것이 가능한가?

This article 나는 "메타 데이터 어셈블리"를 공급 업체로부터 얻을 수 있다고 제안합니다. 그런 어셈블리가 Scripting.Dictionary에 있는지 알고있는 사람이 있습니까?

답변

4

: (이것은 참조 추가 대화 상자의 COM 탭에 표시한다)

비주얼 스튜디오에서 Scrrun.dll에에 COM 참조를 추가 , Visual Studio가 자동으로 interop 파일을 생성합니다. 당신은 다음과 같이 코드를 작성할 수 있습니다 : 당신이 어떤 문제가있을 경우

Scripting.Dictionary d = new Scripting.DictionaryClass(); 
d.Add(ref myKey, ref myValue); 
MyComType.Method(d); 

는 좀 더 많은 예제, 또는 아마도 설명을 게시 할 수 있습니다.

+3

'scrrun.dll'은 COM 유형 라이브러리 섹션의 Microsoft Scripting Runtime 항목으로 알려져 있습니다. – Erick

0

IDictionary를 구현하고 Scripting.Dictionary를 내부 저장소 구현으로 사용하는 래퍼 사전 클래스를 만듭니다. .NET 코드에서 래퍼를 사용하고 COM을 통해 Scripting.Dictionary 내부를 다른 응용 프로그램에 전달합니다.

난 그냥 가장 쉬운 접근 방법을 시도했습니다, 그리고 그것을 작동하는 것 같다