无法找到程序集“client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 问题解决总结

      最近在写一个小的聊天程序,用的是C/S结构,服务器程序一个解决方案,客户端程序一个解决方案。

      但是昨天在将对象序列化和反序列化上出现了问题,我写了一个MyMessage类和一个Serializer类,分别写在服务器程序和客户端程序中了。这两个单独测试都没有问题,可是客户端程序在发送消息给服务器程序时,服务器程序在反序列化对象是总是提示:"无法找到程序集“client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null ”。找了N久也不知道问题出在哪儿,后来在网上搜别人的帖子,发现不是我一个遇到了这种问题。但是有很多人也说不清楚到底是什么原因导致了上述错误 。

     后来终于找到了一个帖子,终于明白错误原因是四个类分处于服务器命名空间下和客户端命名空间下,命名空间的不一致也就是类的不一致导致了对象在反序列化时出现错误。

     解决办法就是写一DLL类库,然后让服务器程序和客户端程序都引用这一个类库,这就解决了类不一致的问题!那么对象在反序列化时就不会出错了!问题KO了!

     怕我自己会忘记,也为了让其他对此感兴趣的朋友遇到与我相同的问题能很快解决,作文以记之!

     本人菜鸟一只,如果我理解的有什么不对的地方,还请高手指点一二!

winform中寄宿webapi的过程如下:首先,在winform项目中添加以下代码段,创建一个新的线程,并在其中加载WebApi程序,配置HttpSelfHostConfiguration对象并创建HttpSelfHostServer对象,最后启动服务器。 ```csharp Thread td = new Thread(new ThreadStart(() => { try { Assembly.Load("WebApi, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"); HttpSelfHostConfiguration configuration = new HttpSelfHostConfiguration("http://localhost/selfhost"); configuration.TransferMode = TransferMode.Streamed; HttpSelfHostServer httpServer = new HttpSelfHostServer(configuration); httpServer.Configuration.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional }); httpServer.OpenAsync().Wait(); } catch (Exception ex) { Console.WriteLine(ex.Message); } })); td.IsBackground = true; Console.WriteLine(td.IsBackground); td.Start(); ``` 另外,确保已安装以下DLL文件:Microsoft.AspNet.WebApi.Client、Microsoft.AspNet.WebApi.SelfHost。 此外,你还可以使用自定义的HttpServer类来管理WebApi服务。下面是一个示例代码: ```csharp public class HttpServer { private HttpSelfHostServer server; public HttpServer(string ip, int port) { var config = new HttpSelfHostConfiguration($"http://{ip}:{port}"); config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{action}"); server = new HttpSelfHostServer(config); } public Task StartHttpServer() { return server.OpenAsync(); } public Task CloseHttpServer() { return server.CloseAsync(); } } ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值