我在不同的 Visual Studio 解决方案中有一个 ASP.NET Web 应用程序和一个 WCF 服务,它们共享共同的业务逻辑(BLL 项目被添加到两个解决方案中)。它们托管在不同的服务器上。
调用 WCF 服务的以下方法时:
List<RequiredAnimals> requiredAnimals=new List<RequiredAnimals>();
List<Animals> animals=animalsService.GetRequiredAnimals(requiredAnimals);
...智能告诉我:
参数类型AnimalManager.BLL.RequiredAnimals[]
不可分配给参数类型RequiredAnimals[]
请注意,由于我在 AnimalsServiceReference 配置中打开了“在所有引用的程序集中重用类型”,因此我可以将 WCF 服务方法的返回值分配给网站中的变量,例如:
列出动物=animalsService.GetAnimals();
但是我无法做到:
List<RequiredAnimals> requiredAnimals=new List<RequiredAnimals>();
List<Animals> animals=animalsService.GetRequiredAnimals(requiredAnimals);
BLL 中所需的动物如下所示:
[DataContract]
public class RequiredAnimal
{
[DataMember]
public string Species{ get; set; }
[DataMember]
public string Name{ get; set; }
}
WCF 方法如下所示:
namespace AnimalsWcfService
{
public class AnimalsService: IAnimalsService
{
public List<Animal> GetRequiredAnimals(List<RequiredAnimals> requirements)
{
List<Animal>animals= AnimalLookup.GetAnimals(requirements);
return animals;
}
public List<Animal> GetAnimals()
{
List<Animal>animals= AnimalLookup.GetAllAnimals();
return animals;
}
}
}
谁能建议为什么我可以获得共享业务逻辑对象 Animal 的列表,但我不能将 RequiredAnimal 作为参数传递给服务?