我需要在我的C#app和另一个应用程序之间传递一个Scripting.Dictionary.我希望能够在我的C#应用程序中创建和修改字典的实例.
我对Scripting.Dictionary和ActiveX一般都知之甚少.各种论坛建议我应该使用System.Type.GetTypeFromProgID()和System.Activator.CreateInstance()等函数来创建实例.不幸的是,这意味着它对我的其余代码来说是一个不透明的对象.
这真的是它应该如何完成还是有更好的方法?理想情况下,我想导入一个编译时类型,并像其他任何类型一样使用它.这可能吗?
本文建议我从供应商那里获得"元数据汇编" - 有没有人知道Scripting.Dictionary是否存在这样的汇编?
我刚尝试了最简单的方法,它似乎工作:
在Visual Studio中向scrrun.dll添加COM引用(它应显示在"添加引用"对话框的"COM"选项卡中),Visual Studio将自动为您创建互操作文件.然后你可以编写如下代码:
Scripting.Dictionary d = new Scripting.DictionaryClass(); d.Add( ref myKey, ref myValue ); MyComType.Method( d );
如果您遇到任何问题,我可以发布更多示例,或者可能是澄清.