我遇到了webservices的问题。我通常的开发方法是创建如下的类。C#web服务将类转换为自己
namespace Project.Entities
{
public class Entity
{
//Some Members
}
}
namespace Project.Service
{
public class EntityService
{
public Project.Entities.Entity Get(int EntityID);
// More Methods to retrive Entities
}
}
当应用程序/网站被允许直接访问数据库时,这对我很好。我现在需要通过web服务公开Project.Service方法,例如
namespace Project.API
{
public class EntitiyWebService
{
[WebMethod()]
public Project.Entities.Entity Get(int EntityID)
{
return new Project.Service.EntityService(EntityID);
}
}
}
我的问题是,如果我打电话给我的web服务从其他应用程序(使用Project.Entities)我不能转换Project.Entities.Entity
到Project.API.EntityWebService.Entity
。我想我明白为什么这不会编译,因为就编译器而言,这两个类没有任何共同之处,而是它们的名字。
我真正需要知道的是,如果我击中,因为陋习这个问题,如果我需要尽快开始重新设计,或者如果我不应该担心它,只是从Entities.Entity
改变我引用API.EntityWebService.Entity
在我应用程序(当然,这不能是最好的解决方案),或者我将如何创建转换方法,因为我的应用程序和我的web服务都使用相同的DLL,它只是引入了需要转换的web服务。或者如果我错误地实施了正确的想法,或者错过了某些东西。或以上都不...
我已经考虑让我的web服务只是返回XML和序列化我的应用程序内的结果,但是这似乎是一个漫长的方法,必须有更好的解决方案。任何意见将不胜感激。
@Chris ...很好的解释。在过去,我也在为序列化/反序列化问题而苦苦挣扎。 – MikeTWebb