Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengintegrasikan Kod Perkhidmatan Terus ke dalam Aplikasi Konsol .NET?

Bagaimanakah Saya Boleh Mengintegrasikan Kod Perkhidmatan Terus ke dalam Aplikasi Konsol .NET?

Patricia Arquette
Patricia Arquetteasal
2024-12-31 12:30:10473semak imbas

How Can I Integrate Service Code Directly into a .NET Console Application?

Mengintegrasikan Kod Perkhidmatan ke dalam Aplikasi .NET Console

Bagaimanakah anda boleh mengubah aplikasi konsol menjadi perkhidmatan Windows tanpa menambah projek berasingan?

Penyelesaian:

Anda boleh menyepadukan kod perkhidmatan dengan lancar ke dalam aplikasi konsol anda untuk membolehkannya berjalan sebagai aplikasi konsol dan perkhidmatan. Pertimbangkan teknik berikut:

using System.ServiceProcess;

public static class Program
{
    const string ServiceName = "MyService";

    public class Service : ServiceBase
    {
        public Service()
        {
            ServiceName = Program.ServiceName;
        }

        protected override void OnStart(string[] args)
        {
            Program.Start(args);
        }

        protected override void OnStop()
        {
            Program.Stop();
        }
    }

    static void Main(string[] args)
    {
        if (!Environment.UserInteractive)
        {
            // Running as service
            using (var service = new Service())
                ServiceBase.Run(service);
        }
        else
        {
            // Running as console app
            Start(args);
            Console.WriteLine("Press any key to stop...");
            Console.ReadKey(true);
            Stop();
        }
    }

    private static void Start(string[] args)
    {
        // OnStart code here
    }

    private static void Stop()
    {
        // OnStop code here
    }
}

Penjelasan:

  • Sifat Environment.UserInteractive biasanya benar untuk apl konsol dan false untuk perkhidmatan.
  • Dengan menyemak sifat ini, kod menentukan sama ada untuk menjalankan aplikasi sebagai perkhidmatan atau sebagai apl konsol. Apabila tidak berjalan sebagai perkhidmatan, aplikasi akan memasuki mod konsol, membaca input dan memaparkan output.
  • Kod perkhidmatan berada dalam kelas Perkhidmatan bersarang yang mewarisi daripada ServiceBase.
  • OnStart dan OnStop kaedah ditindih untuk mengendalikan memulakan dan menghentikan perkhidmatan, masing-masing.
  • Dalam Utama, kaedah ServiceBase.Run digunakan untuk menjalankan perkhidmatan dalam urutan yang berbeza, memastikan program kekal responsif.
  • Sama ada berjalan sebagai apl konsol atau perkhidmatan, kaedah Mula dan Henti menyediakan kefungsian yang diperlukan untuk mengurus pelaksanaan aplikasi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengintegrasikan Kod Perkhidmatan Terus ke dalam Aplikasi Konsol .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn