2012-03-30 2 views
0

おかしなタイトルで申し訳ありません、何も考えられませんでした...ライブラリを使用してアプリケーションを参照する必要がありますか? C#

とにかく、私は基本的にシステムを見るためのライブラリを書いています。このライブラリは、システムのエディタアプリケーションで使用されます。残念ながら、私は、編集アプリケーションにアクセスするために、ライブラリがそのクラスの1つに変数を持つことが突然必要になることによって打撃を受けました。もちろん、これは参照なしでは不可能です。問題は、エディタアプリケーションを参照する必要がないと感じるのは、このライブラリが使用されている数百回のうち、エディタを使用しているアプリケーションの1つのみであり、ライブラリがエディタを参照する必要があることを意味しますそれ。

本当に意味があることを願っています。多くの場合

:アプリケーションは、エディタの場合、ライブラリ を使用しています。エディタはライブラリは、私は基本的に、ライブラリからエディタを参照することを回避する方法をしたいエディタ

を使用しています使用しています。すべての私の要件は、MyClass(デフォルト値null)の型(またはループホールにアクセスするための変数)がライブラリに格納されることです。 MyClassはエディターの一部であり、ライブラリーではありません。エディターを参照する必要はありません。

ありがとうございました!

+3

これは必須ではありません。ライブラリがなぜMyClassにアクセスする必要があるのか​​説明してください。これを行うより良い方法を見つけることができます。ほとんどの場合、あなたのライブラリが提供するイベントがあります。このイベントでは、エディタが自分自身でサブスクリプションを行い、現在ライブラリ内で何をしたいのかを実行できます。 –

+0

WPFとWinFormアプリケーションの両方で使用するライブラリを開発していたときも同じ問題がありました。あなたがエディタ機能を使用していて、それをすべて避けられないなら、それを参照しなければならないかもしれませんが、あなたは疎結合のアプローチとして発展するべきです。 – Habib

+0

を参照するコードを投稿してください。ダニエルさん、基本的に私はライブラリにいくつかの項目をチェックしたいと思っていましたが、エディタからライブラリにすべての変数を渡すのは膨大な作業でした。/ usrの答えはうまくいくようですしかし、今試してみてください:) – Randomman159

答えて

5

"エディタ"が実装するインターフェイスを作成します。ライブラリは、具体的な実装を知る必要はありません、それはインターフェイスで動作することができます。

+0

そして、インターフェイスを独自のアセンブリに入れてください。そうすれば、ライブラリはエディタアセンブリではなくインターフェイスのアセンブリを参照します。エディタアセンブリは、インターフェイスアセンブリも参照する必要があります。 – Polyfun

+0

ありがとう、それを今試して:) – Randomman159

関連する問題