你是否觉得.Net Web Service 中asmx文件是多余的?
1、可以作用一种IoC(或者说的DI)的容器实现程序的解耦。
{
//[WebMethod]
public string HelloWorld(string str)
{
return "Hello World: " + str;
}
[WebMethod]
public Person GetPerson()
{
return new Person {Age = 25, Name = "zhansan"};
}
[WebMethod]
public void SavePerson(Person person)
{
return;
}
}

2、通过Spring.Net提供WebService服务
{
string SayHello(string name);
int Add(int x, int y);
void SavePerson(Person person);
Person GetPerson(string name);
string GetPersonString();
}
{
#region IPerson 成员
public string SayHello(string name)
{
return "Hello word: " + name;
}
public int Add(int x, int y)
{
return x + y;
}
public void SavePerson(Person person)
{
return;
}
public Person GetPerson(string name)
{
return new Person {Age = 25, Name = "zhangsan"};
}
public string GetPersonString()
{
return JsonConvert.SerializeObject(new Person {Age = 25, Name = "zhangsan"});
}
#endregion
}
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/>
</sectionGroup>
</configSections>
<spring>
<context>
<resource uri="config://spring/objects"></resource>
</context>
<objects xmlns="http://www.springframework.net" xmlns:aop="http://www.springframework.net/aop">
<object id="person" type="SpringWebServiceIoC.PersonService,SpringWebServiceIoC">
</object>
<object id ="personObj" type="SpringWebServiceIoCContract.Person,SpringWebServiceIoCContract"></object>
<object id="PersonService" type="Spring.Web.Services.WebServiceExporter,Spring.Web">
<property name="targetName" value="person"></property>
<property name="MemberAttributes">
<dictionary>
<entry key="Add">
<object type="System.Web.Services.WebMethodAttribute, System.Web.Services">
<property name="Description" value="计算量整数之和"></property>
<property name="MessageName" value="计算"></property>
</object>
</entry>
</dictionary>
</property>
</object>
</objects>
</spring>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpHandlers>
<add verb="*" path="*.asmx" type="Spring.Web.Services.WebServiceHandlerFactory, Spring.Web"/>
</httpHandlers>
<httpModules>
<add name="SpringModule" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
</httpModules>
</system.web>
</configuration>
但是在4.0上的服务,如果无参数又能正常运行。这通常是因为使用的Spring.Net版本不同导致。提醒注意。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构