私たちのアプリケーションでは、1日を通して指定された時間にデータを処理するために、バックグラウンドで実行する必要のある数多くのWindowsサービス(30以上)があります。私はBaseServiceクラスを作成しようとしていました。これは、サービスの開始時または停止時に、他の共通の機能と同様に、データベースに記録されたものを継承することができます。しかし、いくつかのMustOverrideプロパティがあるので、私はBaseServiceをMustInheritとして作成しようとしています。問題は次のようになります。Windowsサービスの基本クラスを作成する
<MTAThread()> Shared Sub Main()
私たちのコードはすべてVBで書いてあります。共有メソッドであるため、オーバーライドすることはできません(つまり、MustOverrideにする)。このメソッドがなければ、コードはコンパイルされませんが、実際には基底クラスでは機能しません。このメソッドのコードは次のとおりです。それはMustInheritとして指定されているため
Dim ServicesToRun() As System.ServiceProcess.ServiceBase
ServicesToRun = New System.ServiceProcess.ServiceBase() {New BaseService}
System.ServiceProcess.ServiceBase.Run(ServicesToRun)
BaseService(私の基底クラスの名前)を作成することができません。そしてそこに私の問題があります。私はこれをベースクラスで作成することはできず、継承クラスでオーバーライドすることはできません。
主なアプリケーションのではなく、サービスの方法であり、 1つのアプリケーションが複数のサービスをホストできるためです。アプリケーションとサービスを別々のクラスに分けることができます。これにより、タスクが容易になる場合があります。 –