Вам нужно будет обернуть класс в свой собственный класс, поддерживающий интерфейс.Например, если использование вашего сервиса выглядит следующим образом:
var service = new SomeService();
service.SomeEvent =+ (o, e) => DoSomething(e);
service.DoStuff();
Вы создадите интерфейс:
public interface ISomeService
{
event EventHandler SomeEvent;
void DoStuff();
}
И ваш реализующий класс:
public class SomeServiceWrapper : ISomeService
{
private readonly SomeService _containedService;
public event EventHandler SomeEvent;
public SomeServiceWrapper()
{
_containedService = new SomeService();
_containedService.SomeEvent += (o, e) => RaiseSomeEvent(e);
}
public void DoStuff()
{
_containedService.DoStuff();
}
private void RaiseSomeEvent(EventArgs e)
{
EventHandler evt = SomeEvent;
if (evt != null)
{
evt(this, e);
}
}
}
Тогдавы можете создать пустышку ISomeService
с помощью насмешки или вашего собственного класса пустышки и использовать в работе ISomeService
экземпляр SomeServiceWrapper
.
Надеюсь, что это поможет.