我遇到了网络服务的问题。我通常的开发方法是创建如下类。
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);
}
}
}
我的问题是,如果我从另一个应用程序(使用 Project.Entities)调用我的 web 服务,我无法转换Project.Entities.Entity
为Project.API.EntityWebService.Entity
. 我想我明白为什么这不能编译,因为就编译器而言,这两个类除了它们的名字之外没有任何共同之处。
我真正需要知道的是我是否因为不良做法而遇到了这个问题,如果我需要尽快开始重新设计,或者我不应该担心它,只是在我的应用程序中将我的引用从 更改Entities.Entity
为API.EntityWebService.Entity
(当然这可以' t 是最好的解决方案),或者我将如何创建转换方法,因为我的应用程序和我的 web 服务都使用相同的 DLL,它只是引入了需要转换的 web 服务。或者如果我错误地实施了正确的想法,或者错过了一些东西。或者以上都不是...
我考虑过让我的 web 服务只返回 XML 并在我的应用程序中序列化结果,但这似乎是一种冗长的方法,必须有更好的解决方案。任何建议将不胜感激。