将其他参数传递给通用实现

时间:2014-08-11 09:13:49

标签: c# .net

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>的情况下有没有很好的解决方案?

1 个答案:

答案 0 :(得分:3)

您可以更改界面方法的签名:

public interface IService<T>
{
    void Do<T>(T entity, params object[] parameters);
}

通过这种方式,您无需提供参数,但您可以。