Имейте сценарий, в котором хотели бы иметь общий базовый интерфейс и затем иметь производные интерфейсы, которые затем могут иметь базовые элементы по умолчанию и производные по потребностям. код будет выглядеть примерно так, как показано нижеSignalR Hub <T> поддержка реализации для базового интерфейса
public interface IBaseClient
{
Task MessageBroadCast(dynamic msg);
}
public interface IXXClient : IBaseClient
{
Task XXX(YYY msg);
//Any Additional Client methods should go here
}
public abstract class BaseHub<T> : Hub<T> where T : class
{
public override System.Threading.Tasks.Task OnDisconnected(bool stopCalled)
{
// Do any logic here
return base.OnDisconnected(stopCalled);
}
}
public class XXHub : BaseHub<IXXClient>
{
// Can Do a broadcast from here
// The below will work in a method and you see the MessageBroadCast with strongly typing
Clients.All.XXX(msg);
// Support for below is not present at least in the version I have or may be I'm missing something.
Clients.All.MessageBroadCast(msg);
}
проблемы или информации, необходимой: В SignalR 2.1 Ядра: Получить сообщение об ошибке, говорящее реализации IXXClient не предусмотренных MessageBroadCast.
Есть ли какая-либо конкретная причина, по которой методы базового интерфейса не собираются во время создания Type by SignalR во время выполнения. Чтобы быть конкретным в GenerateInterfaceImplementation (ModuleBuilder moduleBuilder)
Это что-то ограниченное с точки зрения дизайна. Было бы неплохо иметь возможность поддерживать некоторые общие операции в базовом интерфейсе. Пожалуйста, предложите.
Спасибо за ваше время!.