public interface IService<T>
{
void Do<T>(T entity);
}
...
// The service is assigned by DI container:
public IService<Advert> Service { get; private set; }
...
// Interface method call:
Service.Do(advert);
对于这种特殊情况,我需要将其他参数传递给方法Do
。例如:
public void Do<Advert>(Advert advert)
{
...
if (additionalParameter)
{
// do some special stuff
}
...
}
在没有创建特殊IAdvertService : IService<Advert>
的情况下有没有很好的解决方案?
答案 0 :(得分:3)
您可以更改界面方法的签名:
public interface IService<T>
{
void Do<T>(T entity, params object[] parameters);
}
通过这种方式,您无需提供参数,但您可以。