C# 没有服务合同接口的WCF是可能的
我在谷歌上搜索,想知道如何轻松地将asmx服务转换为wcf,在那里我看到人们编写的代码如下 这是我以前的asmx服务 转换为wcfC# 没有服务合同接口的WCF是可能的,c#,web-services,wcf,servicecontract,C#,Web Services,Wcf,Servicecontract,我在谷歌上搜索,想知道如何轻松地将asmx服务转换为wcf,在那里我看到人们编写的代码如下 这是我以前的asmx服务 转换为wcf 我看到在转换时,人们并没有使用服务契约接口。它将如何工作,因为我知道当我们开发wcf服务时,我必须为单个服务编写一个服务契约接口。因此,希望讨论如何在没有服务合同接口的情况下开发wcf服务。谢谢如果您没有在web.config中指定正确的合同名称,上述操作将不起作用 如果没有接口的类位于以下命名空间中: namespace Foo { [ServiceCon
我看到在转换时,人们并没有使用服务契约接口。它将如何工作,因为我知道当我们开发wcf服务时,我必须为单个服务编写一个服务契约接口。因此,希望讨论如何在没有服务合同接口的情况下开发wcf服务。谢谢如果您没有在web.config中指定正确的合同名称,上述操作将不起作用 如果没有接口的类位于以下命名空间中:
namespace Foo
{
[ServiceContract(Namespace="http://kennyw.com/WCFservices/")]
[WebService(Namespace="http://kennyw.com/sampleservices/")]
public class MyService : System.Web.Services.WebService
{
[WebMethod]
[OperationContract]
public string Hello(string name)
{
return string.Format(“Hello {0}.”, name);
}
}
}
在这种情况下,web配置服务配置应该如下所示
<services>
<service name="YourServiceName">
<endpoint address="" behaviorConfiguration="httpBehavior" binding="webHttpBinding" contract="Foo.MyService"/>
</service>
</services>
如果您没有在web.config中指定正确的合同名称,上述操作将不起作用 如果没有接口的类位于以下命名空间中:
namespace Foo
{
[ServiceContract(Namespace="http://kennyw.com/WCFservices/")]
[WebService(Namespace="http://kennyw.com/sampleservices/")]
public class MyService : System.Web.Services.WebService
{
[WebMethod]
[OperationContract]
public string Hello(string name)
{
return string.Format(“Hello {0}.”, name);
}
}
}
在这种情况下,web配置服务配置应该如下所示
<services>
<service name="YourServiceName">
<endpoint address="" behaviorConfiguration="httpBehavior" binding="webHttpBinding" contract="Foo.MyService"/>
</service>
</services>
因为基于以下几个原因,针对接口编程是一件好事:
- 例如,一个非常重要的原因是,您可以在单元测试中轻松地使用它,您可以轻松地对它进行模拟或存根(并设置对它的期望) IYourInterfaceMethods存根=MockRepository.GenerateSub() IYourInterfaceMethods mock=MockRepository.GenerateMock()
- 如果将接口放入一个单独的库中,则API的用户只能拥有这个库及其使用的接口。如果您的接口是稳定的(不会经常更改),他们不必重新编译代码,也很少需要重新部署应用程序(移动、web等)。在大公司中,部署新版本可能是危险的。他们喜欢坚持一个黄金计划:如果它没有被打破,就不要修复它。对你有什么好处?你可以随心所欲地玩一个具体的实现,修复bug,修复这个和那个,重构,删除…总的来说很有趣,但不会伤害任何人:)
- 使用接口、程序员的安全性等还有许多其他原因。。但我认为以上是最重要的2
我希望我能帮上忙。因为基于以下几个原因,针对接口编程是一件好事:
- 例如,一个非常重要的原因是,您可以在单元测试中轻松地使用它,您可以轻松地对它进行模拟或存根(并设置对它的期望) IYourInterfaceMethods存根=MockRepository.GenerateSub() IYourInterfaceMethods mock=MockRepository.GenerateMock()
- 如果将接口放入一个单独的库中,则API的用户只能拥有这个库及其使用的接口。如果您的接口是稳定的(不会经常更改),他们不必重新编译代码,也很少需要重新部署应用程序(移动、web等)。在大公司中,部署新版本可能是危险的。他们喜欢坚持一个黄金计划:如果它没有被打破,就不要修复它。对你有什么好处?你可以随心所欲地玩一个具体的实现,修复bug,修复这个和那个,重构,删除…总的来说很有趣,但不会伤害任何人:)
- 使用接口、程序员的安全性等还有许多其他原因。。但我认为以上是最重要的2
我希望我能帮上忙。你问的有点不清楚。您不必编写单独的接口,但这是可测试性和可重用性的良好实践。。。它编译了吗?这行吗?如果有问题,可以将其转换为ASP.NET Web