Как вызвать метод для внешнего интерфейса DLL - PullRequest
0 голосов
/ 02 марта 2020

В среде API, где происходит обмен форматом JSON, я хочу создать структуру, которая может точно вызывать интерфейс и метод-член.

Могу ли я вызывать любой метод из клиента по одному интерфейсу без использования строк? Ниже приведена структура, которую я хочу реализовать.

# A.dll
public interface IUserProxy
{
    object Select();
    object SelectBySeq();
}

public class DataPack
{
    public Type Proxy { get; set; }

    // I want just set interface member method. 
    public var IMethod {get; set; }
}

# B.dll
public class UserProxy : IUserProxy
{
    public object Select()
    {
        return some code..;
    }
    public object SelectBySeq()
    {
        return some code..;
    }
}

public class Program1
{
    static void Main(string[] args)
    {
        var svc = RunHttpService();
        svc.Start(port: 7777);
        svc.PostRequest += PostRequest; 
    }

    static void PostRequest(DataPack pack)
    {
        var proxy = FindProxyInstance(pack.Proxy);

        // Call Select (inteface member) 
        // from pack.IMethod
        // pack.Select();

    }
}


# C.dll
void PostRequest1()
{
    var svc = new MyService<IUserProxy>();
    svc.DataPack.Proxy = typeof(IUserProxy);
    // I want set call target in interface member method.
    svc.Datapack.IMethod = IUserProxy.Select;

    // Json Serialize Http Protocol.
    svc.Run();
}

void PostRequest2()
{
    var svc = new MyService<IUserProxy>();
    svc.DataPack.Proxy = typeof(IUserProxy);
    // I want set call target in interface member method.
    svc.Datapack.IMethod = IUserProxy.SelectByReq;

    // Json Serialize Http Protocol.
    svc.Run();
}

Я знаю, что моего объяснения не хватает, но я пытался объяснить его настолько, насколько мог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...