В основном, у меня есть следующий класс в моем проекте Client.exe:
Проект Client.exe: Foo.cs
public class Foo
{
[Import(typeof(IBarService))
private IBarService MyBarService { get; set; }
...
}
CoolBarService.dll Проект: CoolBarService.cs
[Export(typeof(IBarService))]
public class CoolBarService : IBarService
{
public int GetBar() { ... }
}
Куда идет IBarService?В настоящее время я добавляю ее в собственную библиотеку классов проекта, на которую затем ссылаются оба проекта, но я не уверен, является ли это наилучшей практикой или нет.Если я просто оставлю IBarService в клиентском приложении, проект CoolBarService не сможет скомпилироваться, поскольку он не знает, что такое IBarService (если, конечно, я не копирую в него тот же код)..dll Проект: IBarService.cs
public interface IBarService
{
int GetBar();
}