WCF服务引用生成的代码无法编译

时间:2013-02-14 17:05:06

标签: visual-studio-2010 wcf code-generation

这是我在向项目添加服务引用时由Visual Studio生成的代码。对“ReminderServiceClient.ServiceReference1.IReminderService”的所有引用都不起作用,因为它找不到“ServiceReference1”。但它在顶部的命名空间中定义了什么?!为什么这个生成的代码不能编译?

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.296
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//-----------------------------------------------------------------------------

-

namespace ReminderServiceClient.ServiceReference1 {


[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName="ServiceReference1.IReminderService")]
public interface IReminderService {

    [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IReminderService/DoWork", ReplyAction="http://tempuri.org/IReminderService/DoWorkResponse")]
    void DoWork();
}

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public interface IReminderServiceChannel : ReminderServiceClient.ServiceReference1.IReminderService, System.ServiceModel.IClientChannel {
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class ReminderServiceClient : System.ServiceModel.ClientBase<ReminderServiceClient.ServiceReference1.IReminderService>, ReminderServiceClient.ServiceReference1.IReminderService {

    public ReminderServiceClient() {
    }

    public ReminderServiceClient(string endpointConfigurationName) : 
            base(endpointConfigurationName) {
    }

    public ReminderServiceClient(string endpointConfigurationName, string remoteAddress) : 
            base(endpointConfigurationName, remoteAddress) {
    }

    public ReminderServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
            base(endpointConfigurationName, remoteAddress) {
    }

    public ReminderServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
            base(binding, remoteAddress) {
    }

    public void DoWork() {
        base.Channel.DoWork();
    }
}

}

1 个答案:

答案 0 :(得分:1)

看起来它没有编译,因为生成的服务客户端类与项目具有相同的名称,因此它被名称空间和具有相同名称的类弄糊涂了。边缘情况!