反映具有在单独程序集中定义的类型属性的类

时间:2012-12-21 00:33:55

标签: 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时,我得到了FileNotFoundExceptionRiskItemBusinessService,位于不同的DLL中)。为此,我捕获异常并将DLL加载到catch子句中,但是,当我尝试PropertyInfo.SetValue时,我再次得到FileNotFoundException,即使我刚刚使用{{{}加载了DLL 1}}。

1 个答案:

答案 0 :(得分:2)

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

基本上,正如约翰指出的那样,你添加了对包含RiskItemBusinessService的程序集的引用。然后转到服务引用配置并启用该选项以重用引用的类型,对于特定的引用,勾选刚刚添加的程序集。这将重新生成服务引用,而不指定指定类型的代理。从这里,您的服务将是汇编引用中的构造变量,因此您应该能够像使用任何其他类型一样使用它。 enter image description here