我从经典的asp中调用了一个C#com interop dll。
我想将名称值对发送到c#dll。
尝试在经典asp中使用字典对象,并在C#中使用相同的字典对象(scripting.runtime com reference)接受它。
但它给出了无效的过程调用或参数错误。
我从这个链接中获得了使用scripting.dictionary的想法 http://www.eggheadcafe.com/community/aspnet/2/10016705/is-there-any-way-to-pass-a-dictionary-object-to-c.aspx
可能是我遗漏了什么
问题
答案 0 :(得分:1)
我将它转换为JSON。至少要知道没有对象级互操作性问题,特别是在混合各种MS对象时。
答案 1 :(得分:1)
你好。在asp经典应用程序中可以使用 System.Collections.HashTable (以及mscorlib 中的许多其他内容)。
请尝试以下方法。希望有用。
Asp App:
Option Explicit
Dim Dictionary, objNetCom, i
Set Dictionary = Server.CreateObject("System.Collections.HashTable")
Set objNetCom = Server.CreateObject("MyTest.doTest")
With Dictionary
For i = 65 To 90
.Add Chr(i), i
Next
End With
Response.Write objNetCom.getDictType(Dictionary)
Set Dictionary = Nothing
Set objNetCom = Nothing
a c#Com Visible:
using System;
using System.Collections;
namespace MyTest
{
public class doTest
{
public string getDictType(Object tDict)
{
return String.Format("Type : \"{0}\", Count : {1}", ((Hashtable)tDict).GetType().ToString(), ((Hashtable)tDict).Count);
}
}
}