0

我在 Web 服务中有一个类,其中有一个嵌套类。

namespace MyWS
{
    // web service class with web methods etc. here

    public class SomeClass
    {
        // fields, properties, stuff etc.

        public class NestedClass
        {
            // ...
        }
    }
}

当我尝试从 Web 服务中创建 Web 引用时,NestedClass它不再是嵌套的,而是SomeClass作为独立类在引用之外(通过 访问MyWS.NestedClass)。下次生成网络引用时,有什么方法可以强制它保持嵌套?也许某种属性?

我正在使用 .NET 2.0 和 VS 2005,如果有什么不同的话。如果可能,请不要建议升级到更新的技术/环境作为解决方案。

编辑:这不是架构问题。我真的不需要将类嵌套在那里,我可以很容易地改变它,所以它更有意义。我只是想知道如果我愿意,是否可以强制它嵌套在参考中。

4

2 回答 2

1

当您定义这样的服务时,它首先被转换为 WSDL。然后将该 WSDL 导入客户端工具中,并用于以导入语言创建类和代码。

现在考虑一种不支持类嵌套的语言,那里应该发生什么?

服务定义仅限于语言特征的共同点。嵌套类型不是功能集的一部分。

还有其他您无法(有效)使用的 C# 功能。

于 2013-10-22T07:17:08.773 回答
0

这是更多的架构问题,然后是技术问题,imo。

在您的情况下,我看到您声明了嵌套类public。没有太多理由这样做,如果不是人为地或声明式地在这两种类型之间创建依赖关系。但这可以通过其他方式完成,避免嵌套,例如:

public class A {
}

public class Dependend {
    //The only available construstor of Dependent is that one which 
    //accepts A type
    public Dependend(A aType) {
    }
}

在这种情况下,您有 2 个不同的实体(因此与它们交互更容易),并且您还在它们之间构建了牢固的关系。

于 2013-10-22T07:02:42.693 回答