【发布时间】:2014-04-25 08:21:27
【问题描述】:
这是我的解决方案结构,有 3 个项目
.NET 3.5 与 Visual Studio 2010 环境
1.库项目,用于定义普通类(只有属性,没有任何方法)名称为“实体”
2. Web 应用项目名称为“MyWeb”
3. Web服务项目名称为“MyServices”
问题
我在“实体”中定义消息类
namespace MyUtil
{
public class Message
{
public int Key { get; set; }
public string Message { get; set; }
public object Value { get; set; }
}
}
这是从“MyWeb”调用网络服务方法的代码。
MyServices service = new MyServices();
MyUtil.Message message = service.GetMessage();
我无法编译。它仍然是通知错误
无法将 MyUtil.Message 转换为 MyWe.MyWebService.Message
所以这里是工作代码
MyServices service = new MyServices();
MyWeb.MyWebService.Message message = service.GetMessage();
问题是我无法使用 MyWeb.MyWebService.Message(来自 Web 服务的返回值)将数据传递到另一个 Web 方法。
所以我需要知道,如何在 Web 和 Web 服务之间使用相同的实体类。不能互相施放。这很难用,有什么办法解决吗?
对于我最近的研究,我发现我必须将所有实体定义为共享类型,这里如何
http://technico.qnownow.com/how-to-share-objects-types-between-multiple-web-services/
我已经尝试了很多次,并且在输出文件夹上没有任何类。有没有人发现这个问题?以及如何解决它。
期待帮助,谢谢。
【问题讨论】:
-
我猜您使用的是“老派”网络服务?在这种情况下,当您引用 Web 服务时,Visual Studio 会为您生成与您在 WebService 项目中使用的不同的代理类。如果您没有太多对象,您可以尝试使用 Automapper 映射它们。
-
是的,我使用的是老式网络服务。我的项目中有 200 多个类,所以如果我使用自动映射器,下一个问题是我的服务器内存不够用。新的网络服务版本会帮助我解决这个问题吗?
-
课程的数量不会增加你的记忆力。但是活动对象的数量会。我看不出内存有什么大问题。我不是 WCF(新 Web 服务版本)的专家,所以我不知道它是如何解决的。但是我用 Web.API 做了一个项目。这很好用,因为数据作为 Json 传输,我会使用 Json.NET 将数据序列化/反序列化到我的公共类中。
-
谢谢,我是这么认为的。我将尝试使用 json 发送/接收数据,这是个好主意。非常感谢
标签: c# asp.net .net web-services class