我有一个像这样的存储库:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
服务合同如下:
[ServiceContract]
public interface IDbRepository
{
[OperationContract]
TEntity Insert<TEntity>(TEntity entity) where TEntity : class;
[OperationContract]
TEntity Update<TEntity>(TEntity entity) where TEntity : class;
}
Run Code Online (Sandbox Code Playgroud)
现在我知道我不能通过wcf发送这个,我必须使开放的泛型类关闭.但问题是我的域数据存储库中有很多实体,我希望它应该由客户端决定它所需要的实体可能是通过反射或预定义的已知类型.
所以我的问题是:有没有聪明或虚假的方式通过wcf发送这些泛型服务?我的目标是我不想为每个实体编写此服务合同.非常感谢.
编辑:伙计你在下面的app.config文件中看到过 这里 Tweak:
<endpoint
address="myAddress" binding="basicHttpBinding"
bindingConfiguration="myBindingConfiguration1"
contract="Contracts.IEntityReadService`1[[Entities.mySampleEntity, Entities]], Service.Contracts" />
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下这个合同是如何实施的.有没有人试图在app.config文件中实现这个调整.我已经尝试过,但现在还没有为我工作.需要帮助答案!