У меня есть репозиторий:
public abstract class DbRepository : IDbRepository
{
public TEntity Insert<TEntity>(TEntity entity) where TEntity : class
{
_context.Entry(entity).State = EntityState.Added;
return entity;
}
public TEntity Update<TEntity>(TEntity entity) where TEntity : class
{
_context.Entry(entity).State = EntityState.Modified;
return entity;
}
}
Сервисный контракт:
[ServiceContract]
public interface IDbRepository
{
[OperationContract]
TEntity Insert<TEntity>(TEntity entity) where TEntity : class;
[OperationContract]
TEntity Update<TEntity>(TEntity entity) where TEntity : class;
}
Теперь я знаю, что я не могу отправить это через wcf, я должен сделать открытый общий класс clossed. Но проблема в том, что у меня есть много объектов в моем репозитории данных домена, и я хочу, чтобы клиент должен решить, какой объект он нужен, может быть через отражение или предопределенные известные типы.
Итак, мой вопрос: Есть ли умный или поддельный способ отправки этих дженериков через wcf? Моя цель - я не хочу писать этот servicecontract для каждой сущности. Большое спасибо.
Редактирование: Ребята вы видели это Здесь Тонкая настройка в файле app.config ниже:
<endpoint
address="myAddress" binding="basicHttpBinding"
bindingConfiguration="myBindingConfiguration1"
contract="Contracts.IEntityReadService`1[[Entities.mySampleEntity, Entities]], Service.Contracts" />
Может кто-нибудь объяснить это, как этот контракт был реализован. Кто-нибудь пытался реализовать эту настройку в файле app.config. Я пробовал, но пока не работал на меня. Нужен полезный ответ!