这是我在向项目添加服务引用时由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();
}
}
}
答案 0 :(得分:1)
看起来它没有编译,因为生成的服务客户端类与项目具有相同的名称,因此它被名称空间和具有相同名称的类弄糊涂了。边缘情况!