Передача словарного объекта из классического ASP в C # - PullRequest
0 голосов
/ 08 сентября 2011

Я звоню в C # com interop dll из классического asp.

Я хочу отправить пары имя-значение в c # dll.

попытался использовать объект словаря в классическом asp и принять его, используя тот же объект словаря (ссылка на scripting.runtime com) в C #.

Но это дает неверный вызов процедуры или ошибку аргумента.

Мне пришла идея использовать scripting.dictionary по этой ссылке http://www.eggheadcafe.com/community/aspnet/2/10016705/is-there-any-way-to-pass-a-dictionary-object-to-c.aspx

Может быть, я что-то упустил

Вопросы

  1. я что-то упустил или есть лучший способ передать значение ключа пары от классического жереха до C #.
  2. Я также рассматриваю возможность использования этой библиотеки asp3tojson и десериализация в C #. это слишком сложно?

Ответы [ 2 ]

1 голос
/ 09 сентября 2011

Привет. В классических приложениях asp можно использовать System.Collections.HashTable ( и многие другие из mscorlib ).
Попробуйте следующее. Надеюсь, полезно.
Приложение Asp:

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);
        }
    }
}
1 голос
/ 08 сентября 2011

Я бы преобразовал это в JSON.По крайней мере, знать, что нет проблем взаимодействия на уровне объектов, особенно когда речь идет о смешивании в различных объектах MS.

...