Используются object вместо нужных интерфейсов при добавлении ссылки на службу
Пишу простенькое клиент-серверное приложение. Сервер хранит некоторые данные. Клиент их обрабатывает и отправляет на сервер для других клиентов. Раньше всегда работал со стандартными типами переменных и полей (string и тд). Сейчас возникла нужда использовать свои интерфейсы. Файл IService:
[ServiceContract(CallbackContract = typeof(IServerCallback))]
public interface IService
{
[OperationContract]
string GetString(); //создал "тестовый". Этот отлично работает после добавления ссылки на службу.
//Так и остаётся возвращаемый тип string
[OperationContract]
IUser GetUsers(); //а вот здесь интерфейс заменяется на object
}
Сам интерфейс:
public interface IUser
{
Guid Id { get; }
IUser TryAdd(IUser client);
void TryRemove(Guid userId);
IUser? TryFind(Guid userId);
}
Раньше всегда использовал стандартные типы (string, int и подобные), поэтому возникла проблема в этом месте. Архитектура проекта следующая:
-Host (сам сервер). У него есть ссылка на Storage
-Storage (здесь находятся все интерфейсы (в том числе IService), их реализация, перечисления и прочее)
-Client (клиент, который обрабатывает информацию и должен отправлять её на сервер). Он не имеет ссылок на другие проекты
Как это работает у меня в голове: Я добавляю ссылку на службу и автоматически создаются нужные ссылки на интерфейсы и тд. Может это нужно как-то задать? Я крайне сильно не хочу добавлять в Client ссылку на весь проект Storage, т.к. это разные проекты, которые не совсем правильно будет "совмещать"
