1 دقیقه میانگین مدت زمان مطالعه است

فرض کنید برای دیباگ یا در دسترس بودن امکانات بیشتر یک Agent که با .Net Core نوشته شده است در حالت پابلیش شده می‌خواهید قسمتی به کد اضافه کنید. بطور مثال اگر برنامه بصورت دستی و فایل exe اجرا شد از کاربر Connection String دیتابیس را بگیرد و اگر بصورت Service ویندوز اجرا شد خودکار از فایل کانفیگ آن را بخواند.
در این موارد می‌توانید از کد زیر استفاده کنید:

Environment.UserInteractive

البته کد بالا در .Net Core 2.1 , 3.1 همیشه مقدار True را بازگشت می‌دهد و در ورژن 5.0 درست شده است.

WindowsServiceHelpers 5.0

WindowsServiceHelpers 3.1

در این مواقع می‌توانید از متود زیر استفاده کنید که در ورژن‌های گفته شده خروجی درست می‌دهد.

WindowsServiceHelpers.IsWindowsService()

Environment 3.1

Environment 5.0

البته این مورد فقط در ویندوز کار می‌کنند و در بقیه موارد مقدار False می‌دهد.