برنامه نویسی

استفاده از جریان های ورودی در برنامه های دات نت برای خطوط لوله فرمان

هنگام ساخت برنامه های کاربردی .NET که برای استفاده در محیط های کنسول در نظر گرفته شده است ، طراحی برنامه شما برای انعطاف پذیری ضروری است. یکی از الزامات متداول این است که تشخیص دهد که آیا ورودی از طریق خط لوله فرمان (یعنی از stdin) ارائه می شود و در صورت عدم انجام یک عمل پیش فرض. در این مقاله به بررسی چگونگی بازرسی جریان ورودی در برنامه .NET خود می پردازیم و رفتار را بر این اساس تنظیم می کنید.

خطوط لوله فرمان در لینوکس

در لینوکس ، اپراتور لوله (|) خروجی یک دستور را به ورودی دیگری متصل می کند. به عنوان مثال:

echo "Hello, World!" | dotnet run
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در این دستور ، خروجی echo از طریق ورودی استاندارد به برنامه دات نت شما ارسال می شود. برنامه شما باید تعیین کند که آیا این ورودی لوله کشی به منظور پردازش صحیح داده ها یا استفاده از منطق Fallback وجود دارد.

بررسی ورودی در یک برنامه .NET

روش های مختلفی برای تشخیص اینکه آیا داده های موجود در جریان ورودی وجود دارد ، وجود دارد یا خیر. در زیر ، ما در مورد سه رویکرد متداول بحث می کنیم.

تشخیص تغییر مسیر ورودی

یک راه حل خوب برای تعیین اینکه آیا ورودی استاندارد هدایت می شود یا خیر. .net فراهم می کند Console.IsInputRedirected املاک ، که برمی گردد:

  • true هنگامی که ورودی از یک لوله یا یک پرونده وارد می شود.
  • false هنگامی که ورودی از یک جلسه ترمینال تعاملی است.

مثال: رسیدگی به ورودی مشروط

در زیر مثالی آورده شده است که نحوه بررسی تغییر مسیر ورودی قبل از تلاش برای خواندن داده ها را نشان می دهد. این رویکرد در صورت ارائه اطلاعات لوله کشی از رفتار مسدود کننده جلوگیری می کند:

if (Console.IsInputRedirected)
{
    string input = Console.In.ReadToEnd();
    Console.WriteLine("Received Input: " + input);
}
else
{
    Console.WriteLine("No input detected; proceeding with default action.");
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ادغام با خطوط لوله فرمان

با ترکیب این روش ها با خطوط لوله فرمان لینوکس ، برنامه .NET شما می تواند با هوشمندی بر اساس منبع ورودی آن کار کند. به عنوان مثال ، خط لوله را در نظر بگیرید:

cat sample.txt | dotnet run
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

هنگامی که داده ها از طریق برنامه شما لوله کشی می شوند sample.txt، یکی از روشهای فوق ورودی را تشخیص داده و آن را پردازش می کند. اگر هیچ داده ای لوله کشی نشده باشد ، برنامه شما می تواند منطق جایگزین را اجرا کند. این انعطاف پذیری باعث می شود برنامه شما قوی و سازگار با شرایط مختلف زمان اجرا باشد.

پایان

تشخیص اینکه آیا یک جریان ورودی حاوی داده ها هنگام طراحی برنامه های دات نت که با خطوط لوله فرمان تعامل دارند ، بسیار مهم است.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا