在Web服务C#

时间:2016-06-14 11:02:50

标签: c# web dll service

我有一个名为“A”的Web服务。

在这个WS上,我只想继续查看已安装的文件夹,换句话说,一起查看主DLL文件。

在这个目录中,我计划放置项目的“模块”并与我的WS共享功能(操作合同)。

例如:

ModuleOne.dll具有以下功能:

string[] getUsersFromDatabase();

MyService.dll具有以下功能:

object CallEventByName(string eventName, params string parameters);

我想象一下:

foreach string file in fileList
// Check if DLL file have the function equal to 'eventName',
// call the function passing your parameters if have

创建申请人SOAP时,请指明功能名称和参数。我的WS需要智能来管理这个请求并返回“返回”哈哈。

我能为此做些什么?

1 个答案:

答案 0 :(得分:0)

像这样的东西,如果要加载的dll有依赖关系可能会有问题,那么你也加载了这个dll

    object CallFunction(string[] fileList , string eventName , object[] parameters){
        foreach(var file in fileList)
        {
            Assembly assem = Assembly.LoadFrom(file);
            foreach(var t in assem.GetTypes())
            {
                var methodInfo = t.GetMethod(eventName);
                if(methodInfo != null)
                {
                    var obj = Activator.CreateInstance(t);
                    return methodInfo.Invoke(obj , parameters);
                }    
            }
        }

        return null;
    }