代码示例如下:
//通过反射一个服务文件建立HOST
Assembly assService = Assembly.LoadFrom(SvrFileName);
Type a = assService.GetType(service.SvrClassName, true);
host = new ServiceHost(a, baseAddress);
//通过反射一个契约文件建立endpoint
Assembly assContract = Assembly.LoadFrom(service.ContractFileName);
Type c = assContract.GetType(ContractFileName, true);
endpoint = host.AddServiceEndpoint(c, binding, ""); //在这一句报错:在服务"XXX"实现的协定列表中找不到协定名称"YYY" XXX为服务文件类名 YYY为契约文件类名
反射的契约接口和直接引用的契约接口有什么区别吗?
可是上面我没有说太明白,我再描述一下:
之前我的契约文件是引用到项目里的,可以通过并正常运行,但我感觉灵活性不好。所以代码别的地方不会有问题的,应该是就反射契约文件时出现的问题。不知道朋友们有没有遇到过?
为什么要这么做呢?因为我要产生多个Endpoint,每个服务的服务又不相同,所以上面的代码是在一个循环中的。
现在的问题是以前没有反射过接口,是不是接口是不能用反射来取得的?