为什么我的WCF类名称将父类作为其名称的一部分?

时间:2013-11-23 20:20:49

标签: c# wcf silverlight

我一直在尝试使用支持Silverlight的WCF服务,并且我得到的奇怪行为在我使用的教程中没有发生。我创建了一个简单的操作契约:(是的,我知道没有定义所有内容的接口,这是启用Silverlight的模板所做的事情)

[ServiceContract(Namespace = "")]
[SilverlightFaultBehavior]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class TestService1
{

    public class TestResponse
    {
        public string Hello { get; set; }
    }

    [OperationContract]
    public TestResponse TestCall()
    {
        return new TestResponse();
    }
}

然后我去创建一个对它的引用,就像我常规的WCF服务一样。但是当我去使用我定义的类时:

ServiceReference2.TestService1TestResponse test = new ServiceReference2.TestService1TestResponse();

而我期待ServiceReference2.TestResponse。知道为什么我的父类名被连接到我的datamember类名的前面吗?我添加了一个普通控制台应用程序的服务引用,同样的事情发生了,所以它不是一个与Silverlight相关的东西..也许在启用Silverlight的WEC服务中有一些设置?我看了这个教程https://www.youtube.com/watch?v=8ln2LyWvf6Q,看看是否发生了其他人,但看起来类名在那里工作正常。

1 个答案:

答案 0 :(得分:0)

运气不好我发现了问题所在。我需要在TestService1类之外声明TestResponse类。我有点惊讶于用于创建服务引用的代码生成器以这种方式创建类。我希望有一个ServiceReference2.TestService1.TestResponse,这就是让我失望的原因。