Вызов делегата C# и последующая обработка обратного вызова в powershellC#

Место общения программистов C#
Ответить
Anonymous
 Вызов делегата C# и последующая обработка обратного вызова в powershell

Сообщение Anonymous »

Предположим, у меня есть класс BankBalance на C#, который определяет функцию DebitTransaction.
DebitTransaction выполняет следующую операцию.
Если баланс > сумма, подлежащая дебетованию, она дебетует сумму, а также уведомляет об этом вызывающую сторону. операция успешна. В противном случае он уведомляет вызывающую сторону о сбое операции.
Ниже приведен код внутри библиотеки C# DLL, как показано ниже

Код: Выделить всё

using System;
namespace BankSystem
{
public class BankBalance
{
public int Balance { get; set; } = 1000;
// Define a delegate that informs the caller about the transaction status
public delegate void DebitTransactionStatus(string message);
public void DebitTransaction(int Debit, DebitTransactionStatus debitTransactionStatus)
{
if (Balance >= Debit)
{
Balance -= Debit;
debitTransactionStatus("Amount is Debited Successfully");
}
else
{
debitTransactionStatus("Not enough balance to perform debit operation");
}
}
}
}
Ниже приведен код вызывающего объекта (C# exe, вызывающий функцию C# DLL DebitTransaction), который запрашивает операцию дебетования.

Код: Выделить всё

using System;
using BankSystem;
namespace Transaction
{
class DebitTransaction
{
static void ShowDebitTransactionStatus(string message)
{
Console.WriteLine(message);
}
static void Main(string[] args)
{
BankBalance bankBalance = new BankBalance();
BankBalance.DebitTransactionStatus debitTransactionStatus = new BankBalance.DebitTransactionStatus(ShowDebitTransactionStatus);
bankBalance.DebitTransaction(500, debitTransactionStatus);
bankBalance.DebitTransaction(600, debitTransactionStatus);
}
}
}
Вышеуказанная программа работает, и вот результат
Сумма успешно списана
Недостаточно баланса для выполнения дебетовой операции
Мне нужно вызвать функцию C# DLL DebitTransaction из powershell (вызов делегата C# и затем зарегистрироваться для обратного вызова) чтобы получить аналогичный результат
Это было бы для меня большим подспорьем, поскольку я разработчик C++/C#, но сейчас занимаюсь автоматизацией в PowerShell из-за нехватки ресурсов в нашей компании. Я также новичок в PowerShell.
(Проект, над которым я работаю, имеет множество экспортированных функций с делегатами и обратными вызовами)
Я попробовал пару ссылок, но это не так. у меня работает.
https://renenyffenegger.ch/notes/Micros ... hell/index

Подробнее здесь: https://stackoverflow.com/questions/790 ... powershell
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»