У меня есть следующая функция, пытающаяся создать обратный вызов InstanceContext из метаданных других сервисов.
private InstanceContext GetCallbackIC(Type proxy, ServiceEndpoint endpoint){
try {
IDuplexContextChannel dcc;
PropertyInfo pi = proxy.GetProperty("InnerDuplexChannel");
if (pi.GetIndexParameters().Length > 0) {
dcc = (IDuplexContextChannel)pi.GetValue(Activator.CreateInstance(proxy, OperationContext.Current.InstanceContext, endpoint.Binding, endpoint.Address), new object[] { 0 });
} else {
dcc = (IDuplexContextChannel)pi.GetValue(Activator.CreateInstance(proxy, OperationContext.Current.InstanceContext, endpoint.Binding, endpoint.Address), null);
}
return new InstanceContext(dcc.CallbackInstance);
} catch (Exception ex) {
return null;
}
}
«OperationContext.Current.InstanceContext» здесь неправильный, потому что он вызывает у меня исключение - «InstanceContext, предоставленный ChannelFactory, содержит UserObject, который не реализует CallbackContractType ...»
Как получить InstanceContext прокси?
Спасибо