複数のドメインを使用しているときにすでに参照されているタイプのコード生成を回避する方法はありますか?
説明させてください。
Silverlightアプリケーション用のアプリケーションインフラストラクチャがあります。このインフラストラクチャパッケージには、サーバー側の3つの(RIA)ドメインサービス(認証、ロギング、サービス検出)が含まれています-Infra.Web.dllとsilverlight dll-アプリケーションの開始時にユーザー認証を実装するClientInfra.dllおよびその他の基本クラス( BaseAppやBaseViewのように)、Infra.Web.dllはClientInfra.dllのWCFRIAサービスリンクとして定義されています。
現在、インフラストラクチャをテストするために、デモ用のSilverlightアプリケーションを開発しています。私は作成しました
Infra.Web.dllを参照する DemoApp.Web(インフラサービスを取得するため)
および2つのSilverlightプロジェクト:
生成されたコードと参照ClientInfra.dllを取得するために、 DemoApp.Web.dllをWCFRIAサービスリンクとして定義する DemoApp.Data
ClientInfra.dllを参照する実際のSilverlightアプリケーションであるDemoApp
問題は、SilverlightアプリケーションからRIAサービスの1つを使用しようとすると、ドメインサービスクラスがClientInfra.dllと DemoApp.Dataの両方で定義されているというエラーが発生することです。私が理解している限り、問題はInfra.Web.dllからのコードが2回生成されていることです。1つ目はClientInfra.dll用、2つ目はDemoApp.Data用です。
ClientInfra.dllがすでに生成されたインフラサービスを持っているので、 DemoApp.Dataで再度生成する必要がない私の場合のように、すでに参照されているタイプのコード生成を回避する方法はあります か?
質問をもっと簡単にしようと思います。参照するdll用に既に生成されているタイプのriaサービスタイプの生成(Silverlightで)を回避するにはどうすればよいですか?タイプ生成の重複により、同じタイプが2つの異なるdllで定義されているというエラーCS0433が発生します。
私はいくつかの興味深い事実を見つけました。DemoApp(Silverlightアプリケーションプロジェクト)から直接ClientInfra.dllを参照すると、 ClientInfra.dllで生成されたデータ型が再度生成されなくなります。しかし、 DemoApp.DataからClientInfra.dllを参照すると、重複したタイプのコードが生成され、参照されたdllと生成されたコードの両方で同じタイプが定義されているというコンパイル警告が表示されます。