今天,我遇到了一个非常奇怪的 WCF 服务问题,让我头晕目眩。
在我的代码中,我的 WCF 接口中有两个定义。
[OperationContract]
List<DOMAIN.Models.Configuration.PAEConfiguration> GetConfigurationList(Guid companyID);
[OperationContract]
DOMAIN.Models.Configuration.PAEConfiguration GetConfigurationByCompanyID(Guid companyID);
这两者显然都与同一个定义的 POCO 类有关。
但是,虽然顶级 LIST 版本工作正常,但在最后一次调用的编译时出现以下错误。
The type 'PAE.DOMAIN.Models.Configuration.PAEConfiguration' is defined in an assembly that is not referenced. You must add a reference to assembly 'PAE.DOMAIN, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
第一个电话完美无缺。第二个导致构建错误。
显然,我发现这有点令人困惑,因为您可以想象,如果可以作为 x 的列表传递,则可以将其作为 x 进行管理。
源 POCO 类是
[DataContract]
public class PAEConfiguration : PAEConfigurationTemplate
{
[DataMember]
public Guid PAEConfigurationID { get; set; }
}
继承了这一点。
[DataContract]
public class PAEConfigurationTemplate
{
[DataMember]
public Guid CompanyID { get; set; }
/* And lots more besides */
}