Gav*_*hin 4 c# .net-1.1 web-services
[问题]
创建了要部署在服务器计算机和客户端计算机上的共享库,如何在客户端服务器与库提供的类之间进行通信?
通过webservices传输信息似乎不起作用,因为Web服务返回的序列化对象是一个不转换为共享库的Web服务类.
我是否错误地使用了网络服务?有没有更好的办法?
[例]
MyLibrary.cs和SubLibrary.cs位于客户端应用程序使用的共享程序集中.
MyLibrary.cs
public class MyLibrary
{
private SubLibrary sublib = new SubLibrary();
public class MyLibrary()
{
}
public string GetValue()
{
return sublib.GetValue();
}
}
Run Code Online (Sandbox Code Playgroud)
SubLibrary.cs
public class SubLibrary
{
private string str = "Hello World";
public SubLibrary()
{
}
public string GetValue()
{
return str;
}
}
Run Code Online (Sandbox Code Playgroud)
WebService.asmx.cs
[WebMethod]
public MyLibrary GetInfo()
{
return new MyLibrary();
}
Run Code Online (Sandbox Code Playgroud)
客户端应用
private void GetInfo_Click(object sender, System.EventArgs e)
{
WS.WebService services = new WS.WebService();
MyLibrary info = services.GetInfo(); // This of course doesn't convert.
MessageBox.Show(info.GetValue());
}
Run Code Online (Sandbox Code Playgroud)
简而言之,这是1.1的痛苦(部分也是2.0).程序集共享(或类型共享)才真正开始成为WCF(.NET 3.0)中的一项功能.1.1中生成的代理永远不会与"实际"类直接兼容; 您可以在多个服务("sharetypes"?)之间共享相同的代理,但不能与独立的源文件IIRC共享.
因为它是C#1.2,你既没有部分类也没有扩展方法来欺骗它们.
选项(我可以看到):
XmlSerializer(更少的代码,但不是那么快)