Webサービスは、プロジェクトにある他のクラスを使用できますか、それともスタンドアロンで独自のメソッドのみを使用する必要がありますか?
ありがとう !
他のクラスのインスタンスを作成し、それらを使用して作業を実行できます。
同じプロジェクトまたは参照されるプロジェクト内のすべてのクラスは、通常のアクセス修飾子を条件として使用可能である必要があります。
usingステートメントを含める必要があります。次の例では、次の場所にあるものを使用することを前提としてSomeClass
いますMyAssembly.SomeLibrary
:-
using MyAssembly.SomeLibrary;
// in code block somewhere
var thing = new SomeClass();
または、クラスの名前を完全に修飾します。
var thing = new MyAssembly.SomeLibrary.SomeClass();
Webサービスは、プロジェクトにある他のクラスを使用できますか?
はい、できます。シリアル化後に、カスタムクラスオブジェクトを返すこともできます。Webサービスがプリミティブ型とのみ(内部的に)相互作用するのを見るのは非常に珍しいことです。
「これは技術的に可能ですか」ではなく、ベストプラクティスの観点から尋ねているようです。答えは、使用したいクラスによって異なりますが、一般的には、Web サービスで必要な他のクラスまたはライブラリを使用してもかまいません。これは、サービスを利用できるクライアントに影響を与えないためです (つまり、LibraryA を使用してサービス側は、サービスを使用するためにクライアント 1 にも LibraryA がインストールされている必要があるという意味ではありません)。
これらのクラスをサービス側で再利用することは可能ですが (Visual Studio では、サービス参照を構成し、適切なプロジェクト / dll への参照を追加するときに [参照されたアセンブリで型を再利用する] ボックスをオンにすることでこれを行います)、一般的には問題を混乱させる可能性があるため、これに反対することをお勧めします。サービスを使用するときに、すべてのクライアントがこれらの dll にアクセスできるわけではありません。