【发布时间】:2017-11-01 09:45:29
【问题描述】:
相当具体的问题,在某些层面上可能是基本的。我对代表和事件处理的一般知识存在差距,所以我对自己有点卡住并不感到惊讶。但是使用 Autofac 使我的理解更加复杂。我会在下面尝试解释。
我正在使用 .NET V3 SAP 连接器连接到 SAP 并实施所谓的 RFC 服务器。作为其中的一部分,SAP 的好人暴露了一个 RfcServerErrorEventHandler:
public delegate void RfcServerErrorEventHandler(object server, RfcServerErrorEventArgs errorEventData);
我在一个类库中启动我的服务器,在该类库中我有我们称之为服务器管理器的东西。它是启动服务器,停止它以及介于两者之间的一切。我所坚持的是我到底如何在我的服务器管理器类中使用上述委托,该委托使用 AutoFac 注入到我的主程序中,实现如下:
public IServerManagerService _ServerManager;
public ApplicationLogic(IServerManagerService serverManager)
{
_ServerManager = serverManager;
}
_ServerManager.StartServer(ServerName);
上面的内容是服务器管理器类,显然是运行 StartServer 方法。我已尝试在服务器管理器类中注册事件(这是我模糊的地方),如下所示:
public void ErrorHandler(object sender, RfcServerErrorEventHandler e)
{
throw new Exception("The method or operation is not implemented.");
}
但是,我能否终其一生弄清楚如何让代表与此相关联,或者弄清楚如何通过 autofac 进行操作。我已经进行了一些尝试,但我无法在网上的任何地方找到任何这样的例子。 SAP .NET 连接器似乎是一个非常小众的东西。连接器文档也只提供了非常基本的代码示例。
我认为我提到的问题可能只是缺少基本的事件处理技术,尤其是在使用 DI 时。在发布之前我已经做了相当多的阅读,但只是没有得到它。
提前致谢
【问题讨论】:
标签: c# delegates event-handling sap autofac