-1

1 つのソリューションに MyServer と MyClient の 2 つのプロジェクトがあります。両方のプロジェクト (それぞれ MessageServer と MessageClient) にある Message クラスのオブジェクトを使用したい。クライアントの参照をサーバー プロジェクトに追加しましたが、 「... 循環依存関係が発生する可能性があります」というエラーが発生するため、反対のことはできません。ので、私は持っています

using TestMyClient;

namespace TestMyServer
{
    public class MessageServer
    {

サーバー側でそれをコードで使用します= new XmlSerializer(typeof(TestMyClient.MessageClient));

私は同じことをしたいのですが、クライアント側で。悲しいことに、名前空間TestMyServerとして入力できないため、クラスを参照できません...usingMessageServer

これらのクラスを相互に使用する方法は?

4

2 に答える 2

2

あなたの質問は明確ではありません-なぜ2つの異なるタイプが必要なのかは明らかではありません-しかし、答えは、サーバーとクライアントの両方のプロジェクトが参照する名前空間に1つのタイプを持つことです。

Server     Client
   \        /
    \      /
     Common

循環依存関係はなく、1 つの共有タイプで、全員が満足しています。

実際に 2 つのメッセージ タイプ (たとえば、要求用と応答用など) が必要な場合は、共通プロジェクトで両方のメッセージを定義します。それらを呼び出さないことをお勧めしますが、サーバークライアントの両方で両方のメッセージが使用されます。一方がメッセージを生成し、もう一方がそれを消費します。一般に、リクエストとレスポンスという用語を使用すると、はるかに明確になります。MessageServerMessageClient

于 2013-04-17T21:52:20.857 に答える