c# - 反射(reflection)具有在不同程序集中定义的类型属性的类

标签 c# .net wcf reflection

我有以下 WCF 类:

namespace BusinessServices.Exposure.Data
{
    [DataContract]
    public class RiskItemBO : ExposureBO
    {
        [DataMember]
        public RiskItemBusinessService RiskItemBusinessService { get; set; }
    }
}

RiskItemBusinessService 是在其他一些 DLL 中定义的类,由 StringIntShort 组成> 变量。我有为这些数据类型生成随机值的方法。

我有以下问题:

我正在使用 Type.GetProperties() 来获取类中的所有属性,这确实为我提供了属性 RiskItemBusinessService 的名称,但是,当我尝试执行 PropertyInfo 时。 PropertyType,我得到 FileNotFoundException(RiskItemBusinessService,在不同的 DLL 中)。为此,我正在捕获异常并将 DLL 加载到 catch 子句中,但是,当我尝试执行 PropertyInfo.SetValue 时,我再次得到 FileNotFoundException 即使我刚刚使用 Assembly.LoadFile 加载了 DLL。

最佳答案

这很可能是您希望在客户端的服务引用中使用重用程序集的情况。

本质上,正如 John 所指出的,您添加了对包含 RiskItemBusinessService 的程序集的引用。然后转到服务引用配置并启用重用引用类型的选项,对于特定引用,勾选刚刚添加的程序集。这将重新生成没有指定类型代理的服务引用。从这里开始,您的服务将是来自程序集引用的构造变量,因此您应该能够像使用任何其他类型一样使用它。 enter image description here

关于c# - 反射(reflection)具有在不同程序集中定义的类型属性的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13982700/

相关文章:

C# 告知如何在选择工具条上的图像后对其进行更改

c# - 在 Android 中转换现有的 Windows 10 UWP 应用程序

c# - 如何制作具有多个参数的linq表达式

c# "=="运算符 : compiler behaviour with different structs

c# - Linq 查询分组依据并选择第一项

c# - 5 .NET HTTP 库 - Microsoft.Net.Http 适合什么地方?

c# - 如何通过 WCF 设置 SSL?

php - 将对象数组从 WCF 传递到 PHP - 提取信息

c# - WCF 服务是否使用多线程来处理传入请求?

c# - 检测我的测试是否在 Visual Studio Team Services 上运行