首先,我很清楚关于我要询问的同一主题还有另外两个问题,我必须遗憾地说它们对我没有用。
就目前而言,我正在尝试创建一个简单的 WCF 服务,该服务将由桌面应用程序使用。我在 Visual Studio 2013 中通过新建 -> 项目提供的 WCF 服务应用程序创建了它。该项目有一个模板,其中包含这两个文件:一个名为 IService1.cs 的接口(interface)和一个名为 Service1.svc 的服务。
整个包开箱即用,但是当我决定分别用“IReservationService”和“ReservationService”重命名这些文件并放入我自己的代码时(我还没有发现任何错误) ,当我决定看看是否一切正常时,我遇到了这个坏男孩:
我很遗憾地告诉你,它的某些部分是西类牙语,如果你不能翻译它们,只需对我大喊大叫,我会为你翻译所有内容。
这是涉及的代码:
IReservationService.cs
namespace WebService
{
[ServiceContract]
public interface IReservationService
{
[OperationContract]
List<Business.Reservation> RequestReservationRetrieval();
}
}
ReservationService.svc
namespace WebService
{
public class ReservationService : IReservationService, IDisposable
{
ReservationRepository repo;
public List<Business.Reservation> RequestReservationRetrieval()
{
//code goes here, skipped it so it doesn't clutter
}
private void ChangeSyncDate(DateTime date)
{
//code goes here, skipped it so it doesn't clutter
}
public void Dispose()
{
repo.Dispose();
}
}
}
一旦我更改了这两个类(IService1.cs 和 Service1.svc)中的代码,我认为这两个类将被重构以完美地适应我的代码,但情况似乎并非如此,我明白了图像中显示的错误。
关于如何解决这个问题的任何想法?
最佳答案
这几乎是一场重构噩梦,因为这个问题在某种程度上是隐藏的。
在我的例子中,ReservationService 中有两个文件,或者更确切地说是要使用的服务:
ReservationService.svc 和ReservationService.svc.cs
ReservationService.svc 只包含这一行:
<%@ ServiceHost Language="C#" Debug="true" Service="WebService.Service1" CodeBehind="ReservationService.svc.cs" %>
哦,令人惊讶的是,它就在那里。 Service="WebService.Service1"正是导致所有这些问题的原因。
为了访问 ReservationService.svc,或者您的项目中调用的任何内容,您需要右键单击 .svc,然后单击“查看标记”。
我发誓,这是一个任何人都不应该处理的问题。
关于c# - 重命名 WCF 服务时的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28312411/