我有以下 WCF 类:
namespace BusinessServices.Exposure.Data
{
[DataContract]
public class RiskItemBO : ExposureBO
{
[DataMember]
public RiskItemBusinessService RiskItemBusinessService { get; set; }
}
}
RiskItemBusinessService
是在其他一些 DLL 中定义的类,由 String
、Int
和 Short
组成> 变量。我有为这些数据类型生成随机值的方法。
我有以下问题:
我正在使用 Type.GetProperties() 来获取类中的所有属性,这确实为我提供了属性 RiskItemBusinessService
的名称,但是,当我尝试执行 PropertyInfo 时。 PropertyType
,我得到 FileNotFoundException
(RiskItemBusinessService
,在不同的 DLL 中)。为此,我正在捕获异常并将 DLL 加载到 catch 子句中,但是,当我尝试执行 PropertyInfo.SetValue
时,我再次得到 FileNotFoundException
即使我刚刚使用 Assembly.LoadFile
加载了 DLL。
最佳答案
这很可能是您希望在客户端的服务引用中使用重用程序集的情况。
本质上,正如 John 所指出的,您添加了对包含 RiskItemBusinessService
的程序集的引用。然后转到服务引用配置并启用重用引用类型的选项,对于特定引用,勾选刚刚添加的程序集。这将重新生成没有指定类型代理的服务引用。从这里开始,您的服务将是来自程序集引用的构造变量,因此您应该能够像使用任何其他类型一样使用它。
关于c# - 反射(reflection)具有在不同程序集中定义的类型属性的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13982700/