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サイトがデータベースへの直接アクセスを許可されている場合に問題なく機能します。次に、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
です。コンパイラに関する限り、これら2つのクラスには名前以外に共通点がないため、これがコンパイルされない理由は理解できたと思います。
私が本当に知る必要があるのは、悪い習慣のためにこの問題が発生したかどうか、そしてできるだけ早く再設計を開始する必要があるかどうか、またはそれについて心配する必要がなく、アプリで参照をからに変更するだけであるかどうかです(確かにこれは可能ですEntities.Entity
)API.EntityWebService.Entity
最善の解決策です)、またはアプリとWebサービスの両方が同じDLLを使用するため、変換メソッドを作成する方法は、変換が必要なWebサービスを紹介するだけです。または、正しいアイデアが間違って実装されている場合、または何かを見逃している場合。または上記のどれも...
WebサービスをXMLを返すだけにして、アプリ内で結果をシリアル化することを検討しましたが、これは、より良い解決策があるはずの何かへの長い道のりのアプローチのようです。何かアドバイスをいただければ幸いです。