【发布时间】:2013-09-03 18:09:43
【问题描述】:
我正在从 web 服务构建一个 .dll,看起来像这样:
namespace MyDllFromWebService
{
public class AnimalDll_2013
{
public AnimalApi.Animal UpdateAnimal(Animal animal)
{
return new AnimalApi().UpdateAnimal(credentials, animal)
}
public AnimalApi.Animal GetAnimal(int id)
{
return new AnimalApi().GetAnimal(credentials, id)
}
}
//I WOULD LIKE FOR THIS TO BE USED
public class Animal
{
}
}
我遇到了 Animal 类的问题。我希望能够在我的主命名空间(不是 AnimalApi.Animal)中使用 Animal 类。
我该如何实现呢? (我尝试继承,但我有 xml 错误“不例外)
请指出正确的方向,以了解如何正确使用 XmlInclude 或其他内容。
理想情况下,我想保留 Reference.cs 原样,但如果我需要更改它,我可以(我想从我的主类中进行)。谢谢。
【问题讨论】:
-
为什么需要使用不同的命名空间?你有循环引用问题吗?如果是这样,继承将无法解决它。 -- 忽略此评论。我没有看你上一张图表。
-
因为我想从我的 Dll 中隐藏实际的 Web 引用,所以我只想使用命名空间 MyDllFromWebService。所以我最终要完成的是在 MyDllFromWebService 中使用类似于 AnimalApi 中的“Animal”的“Animal”类
-
这对我来说没有意义。您根本不应该更改
Reference.cs。如果您想在另一个类中使用 Web 服务,请创建一个设置为AnimalDll_2013的新实例的变量并调用 Update 或 Get 方法。如果您想在调用者和AnimalDll_2013之间添加一些东西,请创建另一个实现您需要的方法的类,并在该类中调用AnimalDll_2013的适当方法。 -
这不起作用,因为类型不是预期的。我想出了如何使用 AutoMapper.dll 更快更容易地做到这一点,无论如何感谢 Keith
标签: c# web-services xml-serialization subclassing web-reference