【问题标题】:How to subclass a class in Web Reference? (class is in reference.cs)如何在 Web Reference 中对类进行子类化? (类在reference.cs中)
【发布时间】: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


【解决方案1】:

使用过的 AutoMapper.dll... 效果很好!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    • 2018-03-04
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多