Как передать сообщение структуры (или класса) назад и вперед между службой C # и отдельным приложением VB 6? - PullRequest
1 голос
/ 11 апреля 2010

Мне нужно передать данные между службой c # и запущенным приложением vb 6, учитывая возможность использования Windows Messaging. Как передать данные между службой C # и запущенным приложением vb 6? Ниже приведен сокращенный образец данных, которые я передаю взад и вперед:

namespace MainSection
{
    public struct Info
    {

    private int _Id;
    private string _TypeCode;
    private float _Calc;
    private DateTime _ProcessDate;
    private bool _ProcessFlag;

    public int Id
    {
        get { return _Id; }
        set { _Id = value; }
    }

    public string TypeCode
    {
        get { return _TypeCode; }
        set { _TypeCode = value; }
    }

    public float Calc
    {
        get { return _Calc; }
        set { _Calc = value; }
    }

    public DateTime ProcessDate
    {
        get { return _ProcessDate}
        set { _ProcessDate = value; }
    }

    public bool ProcessFlag
    {
        get { return _ProcessFlag}
        set { _ProcessFlag = value; }
    }
   }
}

Ответы [ 3 ]

2 голосов
/ 11 апреля 2010

WCF - это рекомендуемая в настоящее время технология Microsoft для создания приложений, требующих межплатформенного взаимодействия. Существует привязка MSMQ (я полагаю, это то, что вы называете «Windows Messaging»), которая позволит вам отправлять и получать сообщения в паре очередей MSMQ. Классы MSMQ также представлены в виде COM-объектов, поэтому приложение VB6 также сможет читать и писать из очередей. Вам нужно было бы пометить ваши объекты передачи данных с правильными атрибутами DataContract в .NET, и вы даже можете избежать представления ваших объектов .NET как объектов COM и избежать повторения.

1 голос
/ 11 апреля 2010

Вы можете написать обертку вокруг службы C # на любом языке .NET, а затем выставить обертку как объект COM. Затем он может быть использован из приложения VB6. Попросите службу C # разместить службу WCF, а затем используйте оболочку «Добавить ссылку на службу» для доступа к ней в качестве клиента.

0 голосов
/ 11 апреля 2010

Я согласен с подходом Джона Сандерса, заключающегося в раскрытии кода c # через COM. Я должен также добавить, что обратное также работает, и может быть более естественным, если вы привыкли к VB6. COM-компонент VB6 легко потребляется кодом C #.

...