それを行うには、いくつかの方法があります。
1)内部メッセージを記述して、例外を投げるには。ユーザと対話するために特別なインターフェイスを使用し
2)焼成イベント
3)。
たとえば、IUiCallbacksインターフェイスのようなものを実装し、このインターフェイスを実装するオブジェクトをBLLクラスまたはメソッドに送信できます。その後、BLLのメソッドはIUiCallbacks.SendMessage()またはIUiCallbacks.SendError()を呼び出してプレゼンテーションを通知できます。また、このインターフェイスを実装するWinFormsUiCallbacks、WebFormsUiCallbacks、SilentUiCallbacksなどの異なるクラスを持つこともできます。要求されたよう
私は通常1を使用)と3)3の
例):
public interface IUiCallbacks
{
void SendMessage(string message);
void SendException(string message, Exception ex);
}
public class WinFormsUiCallbacks : IUiCallbacks
{
public void SendMessage(string message)
{
MessageBox.Show(message);
}
public void SendException(string message, Exception ex)
{
MessageBox.Show(string.Format("Unfortunately, the following errror has occurred:{0}{1}", Environment.NewLine, ex.Message));
}
}
public class OrderService
{
private IUiCallbacks _iUiCallbacks;
...
public OrderService() { ... }
public OrderService(IUiCallbacks iUiCallbacks)
{
_iUiCallbacks = iUiCallbacks;
}
...
public void AddOrder(Order order)
{
...
if(OrderAlreadyExists(order))
{
if(_iUiCallbacks != null)
_iUiCallbacks.SendMessage("The order can not be added, because it is already accepted.");
return;
}
...
}
...
}
をだから、このように使用することができます:返信用
public partial class OrderForm : Form
{
...
public void btnAddOrderFromExcel_Click(...)
{
Order order = LoadOrderFromExcel(...);
OrderService orderService = new OrderService(new WinFormsUiCallbacks());
orderService.AddOrder(order);
}
...
}
こんにちは感謝を。 。 うん、とってもいい!私はあなたがコールバックieと言うとき、number3に関するより多くの情報を聞くために見るでしょう。 EVENT no?サンプルコードはありますか? –
私は私の答えに例を追加しました。 – nightcoder