إنشاء وتشغيل التعليمات البرمجية .NET من مهام سير العمل القياسية في Azure Logic Apps
ينطبق على: Azure Logic Apps (قياسي)
بالنسبة لحلول التكامل حيث يجب عليك تأليف وتشغيل التعليمات البرمجية .NET من سير عمل تطبيق المنطق القياسي، يمكنك استخدام Visual Studio Code مع ملحق Azure Logic Apps (Standard). يوفر هذا الملحق القدرات والفوائد التالية:
- اكتب التعليمات البرمجية الخاصة بك عن طريق إنشاء وظائف تتمتع بالمرونة والتحكم لحل مشاكل التكامل الأكثر تحديا.
- تصحيح التعليمات البرمجية محليا في Visual Studio Code. التنقل عبر التعليمات البرمجية وسير العمل في نفس جلسة تصحيح الأخطاء.
- نشر التعليمات البرمجية جنبا إلى جنب مع مهام سير العمل الخاصة بك. لا توجد خطط خدمة أخرى ضرورية.
- دعم خادم BizTalk سيناريوهات الترحيل حتى تتمكن من رفع وتحويل استثمارات .NET المخصصة من أماكن العمل إلى السحابة.
مع القدرة على كتابة التعليمات البرمجية الخاصة بك، يمكنك إنجاز سيناريوهات مثل ما يلي:
- تنفيذ منطق تسلسل العمل المخصص
- تحليل مخصص لاستخراج المعلومات من رسالة واردة
- التحقق من صحة البيانات والتحويلات البسيطة
- تشكيل الرسائل للرسائل الصادرة إلى نظام آخر، مثل واجهة برمجة التطبيقات
- عمليات الحساب
هذه الإمكانية غير مناسبة لسيناريوهات مثل ما يلي:
- العمليات التي تستغرق أكثر من 10 دقائق للتشغيل
- تحويلات كبيرة للرسائل والبيانات
- سيناريوهات تجميع وتفكيك معقدة
- خادم BizTalk مكونات البنية الأساسية لبرنامج ربط العمليات التجارية التي تنفذ الدفق
لمزيد من المعلومات حول القيود في Azure Logic Apps، راجع الحدود والتكوين - Azure Logic Apps.
المتطلبات الأساسية
حساب واشتراك Azure. إذا لم يكن لديك اشتراك، فيجب التسجيل للحصول على حساب Azure مجاني.
أحدث Visual Studio Code مع ملحق Azure Logic Apps (قياسي). لتلبية هذه المتطلبات، راجع المتطلبات الأساسية لإنشاء مهام سير عمل قياسية في Azure Logic Apps أحادية المستأجر باستخدام Visual Studio Code.
تتوفر إمكانية الوظائف المخصصة حاليا فقط في Visual Studio Code، التي تعمل على نظام تشغيل Windows.
تدعم إمكانية الوظائف المخصصة حاليا استدعاء .NET Framework و.NET 8 لسير عمل تطبيق المنطق المستضاف من Azure.
مجلد محلي لاستخدامه لإنشاء مشروع التعليمات البرمجية
القيود
لا يتوفر تأليف الوظائف المخصصة حاليا في مدخل Microsoft Azure. ومع ذلك، بعد نشر وظائفك من Visual Studio Code إلى Azure، اتبع الخطوات الواردة في استدعاء التعليمات البرمجية الخاصة بك من سير عمل لمدخل Azure. يمكنك استخدام الإجراء المضمن المسمى استدعاء دالة محلية في هذا التطبيق المنطقي للتحديد من الوظائف المخصصة المنشورة وتشغيل التعليمات البرمجية الخاصة بك. يمكن للإجراءات اللاحقة في سير العمل الخاص بك الرجوع إلى المخرجات من هذه الوظائف، كما هو الحال في أي سير عمل آخر. يمكنك عرض محفوظات تشغيل الإجراء المضمن والمدخلات والمخرجات.
تستخدم الوظائف المخصصة عاملا معزولا لاستدعاء التعليمات البرمجية في سير عمل تطبيق المنطق. لتجنب تعارضات مراجع الحزمة بين التعليمات البرمجية للدالة الخاصة بك والعامل، استخدم نفس إصدارات الحزمة المشار إليها من قبل العامل. للحصول على قائمة الحزمة الكاملة والإصدارات المشار إليها من قبل العامل، راجع تبعيات العامل والحزمة.
إنشاء مشروع تعليمة برمجية
يتضمن أحدث ملحق Azure Logic Apps (قياسي) ل Visual Studio Code قالب مشروع تعليمة برمجية يوفر تجربة مبسطة لكتابة التعليمات البرمجية الخاصة بك وتصحيح الأخطاء ونشرها مع مهام سير العمل الخاصة بك. ينشئ قالب المشروع هذا ملف مساحة عمل ومشروعين نموذجيين: مشروع واحد لكتابة التعليمات البرمجية الخاصة بك، والمشروع الآخر لإنشاء مهام سير العمل الخاصة بك.
إشعار
لا يمكنك استخدام مجلد المشروع نفسه لكل من التعليمات البرمجية وسير العمل.
فتح Visual Studio Code. في شريط النشاط، حدد أيقونة Azure . (لوحة المفاتيح: Shift+Alt+A)
في نافذة Azure التي تفتح، على شريط أدوات قسم Workspace ، من قائمة Azure Logic Apps ، حدد Create new logic app workspace.
في المربع تحديد مجلد ، استعرض وصولا إلى المجلد المحلي الذي أنشأته لمشروعك وحدده.
عند ظهور مربع المطالبة إنشاء مساحة عمل تطبيق منطق جديد، قم بتوفير اسم لمساحة العمل الخاصة بك:
يستمر هذا المثال مع MyLogicAppWorkspace.
عند ظهور مربع المطالبة Select a project template for your logic app workspace، حدد Logic app with custom code project.
بالنسبة لسير عمل تطبيق المنطق القياسي المستضاف من Azure، اتبع المطالبة لتحديد إما .NET Framework أو .NET 8.
اتبع المطالبات اللاحقة لتوفير قيم المثال التالية:
العنصر مثال للقيمة اسم الدالة لمشروع وظائف .NET WeatherForecast اسم مساحة الاسم لمشروع وظائف .NET Contoso.Enterprise قالب سير العمل:
- سير عمل ذي حالة
- سير عمل عديم الحالةسير عمل ذي حالة اسم سير العمل MyWorkflow حدد فتح في النافذة الحالية.
بعد الانتهاء من هذه الخطوة، ينشئ Visual Studio Code مساحة العمل الخاصة بك، والتي تتضمن مشروع وظائف .NET ومشروع تطبيق منطقي، بشكل افتراضي، على سبيل المثال:
العقدة الوصف <اسم مساحة العمل> يحتوي على كل من مشروع وظائف .NET ومشروع سير عمل التطبيق المنطقي. الوظائف يحتوي على البيانات الاصطناعية لمشروع وظائف .NET. على سبيل المثال، <ملف function-name>.cs هو ملف التعليمات البرمجية حيث يمكنك تأليف التعليمات البرمجية الخاصة بك. LogicApp يحتوي على البيانات الاصطناعية لمشروع تطبيق المنطق الخاص بك، بما في ذلك سير عمل فارغ.
كتابة التعليمات البرمجية الخاصة بك
في مساحة العمل الخاصة بك، قم بتوسيع عقدة Functions ، إذا لم تكن موسعة بالفعل.
افتح <الملف function-name>.cs المسمى WeatherForecast.cs في هذا المثال.
بشكل افتراضي، يحتوي هذا الملف على نموذج التعليمات البرمجية التي تحتوي على عناصر التعليمات البرمجية التالية جنبا إلى جنب مع قيم المثال المقدمة مسبقا عند الاقتضاء:
- اسم مساحة الاسم
- اسم الفئة
- اسم الوظيفة
- معلمات الوظيفة
- نوع الإرجاع
- نوع مركب
يوضح المثال التالي نموذج التعليمات البرمجية الكامل:
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------ namespace Contoso.Enterprise { using System; using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.Azure.Functions.Extensions.Workflows; using Microsoft.Azure.WebJobs; using Microsoft.Extensions.Logging; /// <summary> /// Represents the WeatherForecast flow invoked function. /// </summary> public class WeatherForecast { private readonly ILogger<WeatherForecast> logger; public WeatherForecast(ILoggerFactory loggerFactory) { logger = loggerFactory.CreateLogger<WeatherForecast>(); } /// <summary> /// Executes the logic app workflow. /// </summary> /// <param name="zipCode">The zip code.</param> /// <param name="temperatureScale">The temperature scale (e.g., Celsius or Fahrenheit).</param> [FunctionName("WeatherForecast")] public Task<Weather> Run([WorkflowActionTrigger] int zipCode, string temperatureScale) { this.logger.LogInformation("Starting WeatherForecast with Zip Code: " + zipCode + " and Scale: " + temperatureScale); // Generate random temperature within a range based on the temperature scale Random rnd = new Random(); var currentTemp = temperatureScale == "Celsius" ? rnd.Next(1, 30) : rnd.Next(40, 90); var lowTemp = currentTemp - 10; var highTemp = currentTemp + 10; // Create a Weather object with the temperature information var weather = new Weather() { ZipCode = zipCode, CurrentWeather = $"The current weather is {currentTemp} {temperatureScale}", DayLow = $"The low for the day is {lowTemp} {temperatureScale}", DayHigh = $"The high for the day is {highTemp} {temperatureScale}" }; return Task.FromResult(weather); } /// <summary> /// Represents the weather information for WeatherForecast. /// </summary> public class Weather { /// <summary> /// Gets or sets the zip code. /// </summary> public int ZipCode { get; set; } /// <summary> /// Gets or sets the current weather. /// </summary> public string CurrentWeather { get; set; } /// <summary> /// Gets or sets the low temperature for the day. /// </summary> public string DayLow { get; set; } /// <summary> /// Gets or sets the high temperature for the day. /// </summary> public string DayHigh { get; set; } } } }
يتضمن تعريف الدالة أسلوبا افتراضيا
Run
يمكنك استخدامه للبدء. يوضح هذا الأسلوب النموذجيRun
بعض الإمكانات المتوفرة مع ميزة الوظائف المخصصة، مثل تمرير مدخلات ومخرجات مختلفة، بما في ذلك أنواع .NET المعقدة.<يتضمن ملف function-name>.cs أيضا الواجهة
ILogger
التي توفر دعما لتسجيل الأحداث إلى مورد Application Insights. يمكنك إرسال معلومات التتبع إلى Application Insights وتخزين هذه المعلومات جنبا إلى جنب مع معلومات التتبع من مهام سير العمل، على سبيل المثال:private readonly ILogger<WeatherForecast> logger; public WeatherForecast(ILoggerFactory loggerFactory) { logger = loggerFactory.CreateLogger<WeatherForecast>(); } [FunctionName("WeatherForecast")] public Task<Weather> Run([WorkflowActionTrigger] int zipCode, string temperatureScale) { this.logger.LogInformation("Starting WeatherForecast with Zip Code: " + zipCode + " and Scale: " + temperatureScale); <...> }
استبدل نموذج التعليمات البرمجية للدالة بالتعليمات البرمجية الخاصة بك، ثم قم بتحرير الأسلوب الافتراضي
Run
للسيناريوهات الخاصة بك. أو يمكنك نسخ الدالة، بما في[FunctionName("<*function-name*>")]
ذلك الإعلان، ثم إعادة تسمية الدالة باسم فريد. يمكنك بعد ذلك تحرير الدالة التي تمت إعادة تسميتها لتلبية احتياجاتك.
يستمر هذا المثال مع نموذج التعليمات البرمجية دون أي تغييرات.
تحويل التعليمات البرمجية برمجيا وبناءها
بعد الانتهاء من كتابة التعليمات البرمجية الخاصة بك، قم بالتحويل البرمجي للتأكد من عدم وجود أخطاء في البنية. يتضمن مشروع وظائف .NET تلقائيا مهام الإنشاء، والتي تقوم بتجميع التعليمات البرمجية ثم إضافتها إلى المجلد lib\custom في مشروع تطبيق المنطق حيث تبحث مهام سير العمل عن وظائف مخصصة لتشغيلها. تضع هذه المهام التجميعات في المجلد lib\custom\net472 أو lib\custom\net8 ، استنادا إلى إصدار .NET الخاص بك.
في Visual Studio Code، من القائمة Terminal ، حدد New Terminal.
من قائمة دليل العمل التي تظهر، حدد Functions كدليل العمل الحالي للمحطة الطرفية الجديدة.
يفتح Visual Studio Code نافذة طرفية مع موجه أوامر.
في نافذة Terminal ، في موجه الأوامر، أدخل dotnet restore.
يحلل Visual Studio Code مشاريعك ويحدد ما إذا كانت محدثة أم لا.
بعد ظهور موجه الأوامر مرة أخرى، أدخل بنية dotnet. أو، من القائمة Terminal ، حدد Run Task. من قائمة المهام، حدد build (Functions).
إذا نجح البناء الخاص بك، تبلغ نافذة Terminal عن نجاح البنية.
تأكد من وجود العناصر التالية في مشروع تطبيق المنطق الخاص بك:
في مساحة العمل الخاصة بك، قم بتوسيع المجلدات التالية: LogicApp>lib\custom>net472 أو net8، استنادا إلى إصدار .NET الخاص بك. تأكد من أن المجلد الفرعي المسمى net472 أو net8، على التوالي، يحتوي على ملفات التجميع (DLL) المطلوبة لتشغيل التعليمات البرمجية الخاصة بك، بما في ذلك ملف يسمى< function-name>.dll.
في مساحة العمل الخاصة بك، قم بتوسيع المجلدات التالية: LogicApp>lib\custom<>function-name.> تأكد من أن المجلد الفرعي المسمى <function-name> يحتوي على ملف function.json، والذي يتضمن بيانات التعريف حول التعليمات البرمجية للدالة التي كتبتها. يستخدم مصمم سير العمل هذا الملف لتحديد المدخلات والمخرجات الضرورية عند استدعاء التعليمات البرمجية الخاصة بك.
يوضح المثال التالي عينة التجميعات التي تم إنشاؤها والملفات الأخرى في مشروع تطبيق المنطق:
استدعاء التعليمات البرمجية من سير عمل
بعد التأكد من أن التعليمات البرمجية الخاصة بك تقوم بالتحويل البرمجي وأن مشروع تطبيق المنطق الخاص بك يحتوي على الملفات الضرورية لتشغيل التعليمات البرمجية الخاصة بك، افتح سير العمل الافتراضي المضمن في مشروع تطبيق المنطق الخاص بك.
في مساحة العمل الخاصة بك، ضمن LogicApp، قم بتوسيع عقدة< اسم> سير العمل، وافتح القائمة المختصرة workflow.json، وحدد Open Designer.
على مصمم سير العمل الذي يفتح، يظهر سير العمل الافتراضي، المضمن مع مشروع تطبيق المنطق الخاص بك، مع المشغل والإجراءات التالية:
- مشغل الطلب المضمن المسمى عند تلقي طلب HTTP
- الإجراء المضمن المسمى استدعاء دالة محلية في هذا التطبيق المنطقي
- إجراء الاستجابة المضمن المسمى Response، والذي تستخدمه للرد على المتصل فقط عند استخدام مشغل الطلب
حدد الإجراء المسمى استدعاء دالة محلية في هذا التطبيق المنطقي.
يفتح جزء معلومات الإجراء إلى اليمين.
راجع وتأكد من تعيين قيمة معلمة اسم الدالة إلى الدالة التي تريد تشغيلها. مراجعة أو تغيير أي قيم معلمات أخرى تستخدمها الدالة.
تصحيح التعليمات البرمجية وسير العمل
كرر الخطوات التالية لبدء تشغيل محاكي تخزين Azurite ثلاث مرات: مرة واحدة لكل من خدمات Azure Storage التالية:
- خدمة Azure Blob
- خدمة قائمة انتظار Azure
- Azure Table Service
من قائمة Visual Studio Code View ، حدد Command Palette.
في المطالبة التي تظهر، ابحث عن Azurite: Start Blob Service وحددها.
من قائمة دليل العمل التي تظهر، حدد LogicApp.
كرر هذه الخطوات ل Azurite: Start Queue Service و Azurite: Start Table Service.
تكون ناجحا عندما يعرض شريط مهام Visual Studio Code في أسفل الشاشة خدمات التخزين الثلاث قيد التشغيل، على سبيل المثال:
إرفاق مصحح الأخطاء بمشروع تطبيق المنطق باتباع الخطوات التالية:
في شريط نشاط Visual Studio Code، حدد Run and Debug. (لوحة المفاتيح: Ctrl+Shift+D)
من قائمة Run and Debug، حدد Attach to logic app (LogicApp)، إذا لم يكن محددا بالفعل، ثم حدد Play (سهم أخضر).
تفتح نافذة Terminal وتعرض عملية تصحيح الأخطاء التي بدأت. ثم تظهر نافذة وحدة تحكم تتبع الأخطاء وتعرض حالات تصحيح الأخطاء. في الجزء السفلي من Visual Studio Code، يتحول شريط المهام إلى اللون البرتقالي، مما يشير إلى أنه يتم تحميل مصحح الأخطاء .NET.
قم بإرفاق مصحح الأخطاء بمشروع وظائف .NET باتباع هذه الخطوات، استنادا إلى التعليمات البرمجية الخاصة بك:
مشاريع .NET 8
من قائمة Visual Studio Code View ، حدد Command Palette.
من لوحة الأوامر، ابحث عن تتبع الأخطاء وحدده: إرفاق بعملية .NET 5+ أو .NET Core.
من القائمة، ابحث عن عملية dotnet.exe وحددها. إذا كانت هناك عمليات dotnet.exe متعددة، فحدد العملية التي تحتوي على المسار التالي:
<drive-name>:\Users<user-name.azure-functions-core-tools>\Functions\ExtensionBundles\Microsoft.Azure.Functions.ExtensionBundle.Workflows<extension-bundle-version>\CustomCodeNetFxWorker\net8\Microsoft.Azure.Workflows.Functions.CustomCodeNetFxWorker.dll
مشاريع .NET Framework
من قائمة Run and Debug، حدد Attach to .NET Functions (Functions)، إذا لم يكن محددا بالفعل، ثم حدد Play (سهم أخضر).
لتعيين أي نقاط توقف، في تعريف الدالة (<اسم> الدالة.cs) أو تعريف سير العمل (workflow.json)، ابحث عن رقم السطر حيث تريد نقطة التوقف، وحدد العمود إلى اليسار، على سبيل المثال:
لتشغيل مشغل الطلب يدويا في سير العمل، افتح صفحة نظرة عامة على سير العمل.
من مشروع تطبيق المنطق، افتح القائمة المختصرة لملف workflow.json ، وحدد نظرة عامة.
في صفحة نظرة عامة على سير العمل، يتوفر زر تشغيل المشغل عندما تريد بدء سير العمل يدويا. ضمن خصائص سير العمل، قيمة عنوان URL لرد الاتصال هي عنوان URL لنقطة نهاية قابلة للاستدعاء تم إنشاؤها بواسطة مشغل الطلب في سير العمل الخاص بك. يمكنك إرسال طلبات إلى عنوان URL هذا لتشغيل سير العمل الخاص بك من تطبيقات أخرى، بما في ذلك مهام سير عمل تطبيق المنطق الأخرى.
في شريط أدوات صفحة نظرة عامة ، حدد تشغيل المشغل.
بعد بدء تشغيل سير العمل، يقوم مصحح الأخطاء بتنشيط نقطة التوقف الأولى.
في قائمة تشغيل أو شريط أدوات مصحح الأخطاء، حدد إجراء تصحيح الأخطاء.
بعد اكتمال تشغيل سير العمل، تعرض صفحة نظرة عامة التشغيل النهائي والتفاصيل الأساسية حول هذا التشغيل.
لمراجعة مزيد من المعلومات حول تشغيل سير العمل، حدد التشغيل النهائي. أو، من القائمة إلى جانب عمود المدة، حدد إظهار التشغيل.
نشر التعليمات البرمجية الخاصة بك
يمكنك نشر وظائفك المخصصة بنفس الطريقة التي تنشر بها مشروع تطبيق المنطق الخاص بك. سواء قمت بالنشر من Visual Studio Code أو استخدام عملية CI/CD DevOps، تأكد من إنشاء التعليمات البرمجية الخاصة بك ومن وجود كافة التجميعات التابعة في مجلد مشروع تطبيق المنطق التالي قبل النشر:
.NET 4.7.2: المجلد lib/custom/net472
.NET 8: المجلد lib/custom/net8
لمزيد من المعلومات، راجع نشر مهام سير العمل القياسية من Visual Studio Code إلى Azure.
استكشاف الأخطاء وإصلاحها
خطأ في جزء معلومات الإجراء
على مصمم سير العمل، عند تحديد الإجراء المضمن المسمى استدعاء دالة محلية في تطبيق المنطق هذا، يعرض جزء معلومات الإجراء الرسالة التالية:
Failed to retrieve dynamic inputs. Error details:
في هذا السيناريو، افحص مشروع تطبيق المنطق للتحقق مما إذا كان المجلد LogicApp\lib\custom فارغا. إذا كانت فارغة، من القائمة Terminal، حدد Run Task>build Functions.
لا توجد عملية بالاسم المحدد قيد التشغيل حاليا
إذا تلقيت رسالة الخطأ هذه عند تشغيل سير العمل الخاص بك، من المحتمل أن تكون عملية مصحح الأخطاء مرفقة بوظائف .NET، بدلا من تطبيق المنطق الخاص بك.
لإصلاح هذه المشكلة، من القائمة تشغيل وتصحيح ، حدد إرفاق بتطبيق المنطق (LogicApp)، ثم حدد تشغيل (مثلث أخضر).
لم يتم استيراد الحزمة بشكل صحيح
إذا كانت نافذة Output تعرض خطأ مشابها للرسالة التالية، فتأكد من تثبيت .NET 6.0 على الأقل. إذا كان هذا الإصدار مثبتا لديك، فحاول إلغاء تثبيته ثم إعادة تثبيته.
C:\Users\yourUserName\.nuget\packages\microsoft.net.sdk.functions\4.2.0\build\Microsoft.NET.Sdk.Functions.targets(83,5): warning : The ExtensionsMetadataGenerator package was not imported correctly. Are you missing 'C:\Users\yourUserName\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator\4.0.1\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.targets' or 'C:\Users\yourUserName\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator\4.0.1\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.props'? [C:\Desktop\...\custom-code-project\MyLogicAppWorkspace\Function\WeatherForecast.csproj] WeatherForecast -> C:\Desktop\...\custom-code-project\MyLogicAppWorkspace\Function\\bin\Debug\net472\WeatherForecast.dll C:\Users\yourUserName\.nuget\packages\microsoft.net.sdk.functions\4.2.0\build\Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : It was not possible to find any compatible framework version [C:\Desktop\...\custom-code-project\MyLogicAppWorkspace\Function\WeatherForecast.csproj] C:\Users\yourUserName\.nuget\packages\microsoft.net.sdk.functions\4.2.0\build\Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : The specified framework 'Microsoft.NETCore.App', version '6.0.0' was not found. [C:\Desktop\...\custom-code-project\MyLogicAppWorkspace\Function\WeatherForecast.csproj] C:\Users\yourUserName\.nuget\packages\microsoft.net.sdk.functions\4.2.0\build\Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : - Check application dependencies and target a framework version installed at: [C:\Desktop\...\custom-code-project\MyLogicAppWorkspace\Function\WeatherForecast.csproj]
فشل الإنشاء
إذا كانت الدالة لا تتضمن متغيرات، وقمت بإنشاء التعليمات البرمجية الخاصة بك، فقد تظهر نافذة الإخراج رسائل الخطأ التالية:
C:\Users\yourUserName\...\custom-code-project\Function\func.cs (24,64): error CS1031: Type expected [C:\Users\yourUserName\...\custom-code-project\Function\func.csproj]
C:\Users\yourUserName\...\custom-code-project\Function\func.cs (24,64): error CS1001: Identifier expected [C:\Users\yourUserName\...\custom-code-project\Function\func.csproj]
Build FAILED.
C:\Users\yourUserName\...\custom-code-project\Function\func.cs (24,64): error CS1031: Type expected [C:\Users\yourUserName\...\custom-code-project\Function\func.csproj]
C:\Users\yourUserName\...\custom-code-project\Function\func.cs (24,64): error CS1001: Identifier expected [C:\Users\yourUserName\...\custom-code-project\Function\func.csproj]
0 Warning(s)
2 Error(s)
لإصلاح هذه المشكلة، في أسلوب التعليمات البرمجية Run
، قم بإلحاق المعلمة التالية:
string parameter1 = null
يوضح المثال التالي كيفية Run
ظهور توقيع الأسلوب:
public static Task<Weather> Run([WorkflowActionTrigger] int zipCode, string temperatureScale, string parameter1 = null)