1
signalRハブでカスタムエラーログを実装する必要があります。これは、HubPipelineModuleから継承されますと、それはこれが私のハブHubPipelineModule OnIncomingErrorイベントからハブのメソッドを呼び出す
public class FooHub : Hub
{
public void MethodWithException()
{
throw new Exception();
}
public void FooMethod()
{
}
}
あるこの
GlobalHost.HubPipeline.AddModule(new ErrorModule());
のようなスタートアップに登録されるErrorModuleを作成することによって行われ、これが私のモジュールであることができる
public class ErrorModule : HubPipelineModule
{
protected override void OnIncomingError(ExceptionContext exceptionContext, IHubIncomingInvokerContext invokerContext)
{
//call foo method on foo hub
//log error
}
}
MethodWithException()が呼び出されます。イベントOnIncomingErrorを呼び出したハブに対してFooMethod()を呼び出すことは可能ですか?あなたがここに完全なコードを見つけることができます
protected override void OnIncomingError(ExceptionContext exceptionContext,
IHubIncomingInvokerContext invokerContext)
{
var hub = (invokerContext.Hub as HubType); //
hub.MyMethod("myparam","mysecondparam");
//log something here
Debug.WriteLine(exceptionContext.Error.Message);
}
:あなたが行うことができ、ハブの特定のメソッドを呼び出すために
protected override void OnIncomingError(ExceptionContext exceptionContext,
IHubIncomingInvokerContext invokerContext)
{
dynamic caller = invokerContext.Hub.Clients.Caller;
caller.ExceptionHandler(exceptionContext.Error.Message);
//log something here
Debug.WriteLine(exceptionContext.Error.Message);
}
EDIT
:このようなもので
申し訳ありませんが、私はmetho d例外を発生させたハブで定義済み –
ハブインスタンスを取得したい場合は、対応するハブをキャストできます。 –