我有一个包含多个项目的大型MVC解决方案。我计划创建一个单独的解决方案,其中包含WCF服务,并将一些消耗高资源的项目移动到该解决方案中。想法是MVC应用程序将与WCF通信以满足任何计算需求。
问题是我不知道如何调用现有的类和接口,这些类和接口已经具有对服务的接口。我的类/接口:
问题是我不知道如何调用现有的类和接口,这些类和接口已经具有对服务的接口。我的类/接口:
public interface IHelloWorld
{
string SayHello(string name);
}
public class HelloWorld : IHelloWorld
{
public string SayHello(string name)
{
return string.Format("Hello, {0}", name);
}
}
这个类中有数百种方法,但只有其中的一些会被暴露给WCF。
现在我需要在新创建的WCF服务中调用这个类。我不确定:
- 我是否需要修改现有类以转换为svc.cs(服务),还是可以创建一个单独的服务文件并在其中调用现有方法?
- 服务类还需要一个接口,该接口将在web.config中定义(终结点契约)。我应该创建一个仅包含我要公开的方法的单独接口,还是应该使用类库中的现有接口?如果我使用类接口,则必须在web.config中提到相同的接口。
我有点困惑该如何最好地完成它。我不想修改现有类,但想添加一个新的服务,我可以在那里连接并调用。新的svc.cs文件如下:
[ServiceContract]
public interface IHelloWorldService
{
[OperationContract]
string SayHello(string name);
}
public class HelloWorldService : IHelloWorldService
{
private IHelloWorld helloWorld = new HelloWorld();
public string SayHello(string name)
{
return helloWorld.SayHello(name);
}
}
这个设计看起来像是在重复现有的类/接口。不确定这是否是正确的方式,请帮忙确认一下。
HelloWorld
类有15个属性,那么我是否需要在HelloWorldService
类中添加所有这些带有[DataMember]
属性的属性? - sarojanand