저는 매일 stackoverflow에 익숙하지만 매일 사용합니다. 오늘은 어디서나이 정보를 얻을 수 없기 때문에 나는 너를 필요로한다.wcf 콜백 + save session not operationcontext
내 질문은 : 나는 서비스 콜백을 클라이언트에 만들고 싶지만 서비스에서 호출하는 함수에서 콜백하고 싶지 않다. (가입자/게시자와 같은 것) 콜백 인스턴스를 저장하려고합니다. 그런 다음 서비스에서 콜백을 트리거 할 함수를 호출하려고합니다 (callbacks.PrintMessage ("Message"));) 콜백 인스턴스를 정적 클래스의 정적 목록에 저장합니다.
callback.function()를 호출 할 때 임이 오류가 점점 : 임이와 인스턴스 얻기 때문에 "당신이 배치 객체를 사용하는"OperationContext.Current.GetCallbackChannel < "콜백 인터페이스를">
무엇을 할 수 그 콜백 인스턴스를 저장합니까?
고마워요.
페드로
CODE :
//FUNCTION IN MY SERVICE
public void Subscribe()
{
var callback = OperationContext.Current.GetCallbackChannel<IMonitoringWebServiceCallback>();
callbacks.Add(callback);
callback = OperationContext.Current.GetCallbackChannel<IMonitoringWebServiceCallback>();
AlarmCallbackSingleton.Instance.AddCallback(callback);
//callback.PrintString("String"); //HERE IT WORKS! BUT I DONT WANT CALL HERE!
alarmInfoHandler = new AlarmInfoEventHandler(AlarmInfoHandler);
NewAlarmInfo += alarmInfoHandler;
}
//FUNCTION IN THE SAME SERVICE CALLED BY OTHER CLIENT
public void PublishAlarm(string alarm)
{
AlarmInfoEventArgs e = new AlarmInfoEventArgs();
e.Alarm = alarm;
NewAlarmInfo(this, e);
}
public void AlarmInfoHandler(object sender, AlarmInfoEventArgs e)
{
List<IMonitoringWebServiceCallback> callbacks = AlarmCallbackSingleton.Instance.GetCallbacks();
//EVERYONE THAT SUBSCRIBED SHOULD EXECUTE THIS (HERE I GET THE DISPOSED ERROR)
callbacks.ForEach(x => x.ShowString("String!"));
}
코드를 게시 할 수 있습니까? – GrandMasterFlush
죄송합니다. 나는 Stackoverflow에 익숙하지 않아서 코드 식별이 좋지 않을뿐입니다. 네가 물었던 것이 거기에 있다고 생각하고 네가 이해할 수 있다고 생각한다. 고맙습니다. – cyp