1

現在、Windows サービス プロジェクトに取り組んでいます。その dll の関数を使用する必要があるため、プロジェクトの外部にあるクラス ライブラリへの参照を追加しました。

ただし、必要なクラス ライブラリ関数はセッション値を取得していますが、Windows のみであるため、これらの Web メソッドを使用できません。この問題を解決するには、2 つの方法しか考えられません。

1) 外部クラス ライブラリから必要な関数をオーバーロードし、セッション値を入力パラメーターに置き換えます。この関数が参照している多くのセッション値があるため、これは間違いなく時間のかかるプロセスです。

2) 代わりに Windows フォーム アプリケーションを作成できます。フォームに Web ブラウザー コントロールを追加します。外部プロジェクトの関数が必要とするすべての入力パラメーターを持つように URL を構成します。バックグラウンド プロセスとして実行するスケジューラを追加します。参照する必要がある ASP.NET でコーディングされた外部プロジェクトでは、Windows フォーム アプリから URL を取得する新しいページを追加できます。クエリ文字列を解析して入力値を取得し、必要な関数に渡します。

より良いアプローチがあれば提案してください。ありがとうございました !

4

2 に答える 2

0

オプション 1 が最適のようです。これは最も整頓されており、プロジェクトを管理し続けることができます。これをやり始めると、悪用できるパターンに気付くと思います。これにより、全体の作業が今の見た目ほど多くなくなります。

ショートカットが短いことはめったにありません。

于 2012-10-04T02:22:11.283 に答える
0

オプション 1 をお勧めします。オプション 2 は巨大な悪夢が待っているように見えますが、オプション 1 は単純な (面倒ではありますが) コードの変更のように見えます。

Visual Studio またはお気に入りのテキスト エディターで正規表現の検索/置換を行うことで、オプション 1 の負担を軽減できます。私はいつもこのテクニックを使って、退屈で大規模なコード変更を行っています。慣れれば非常に効率的です。

ただし、長期的な解決策は、ライブラリ コードを変更することです。グローバルな状態に依存する再利用可能なライブラリ コードを記述することは、常に災害のレシピです。

于 2012-10-04T17:42:49.687 に答える