Передовая практика. Как правильно выставить свой контракт на внешнюю службу для использования с MEF? - PullRequest
1 голос
/ 07 марта 2011

В основном, у меня есть следующий класс в моем проекте 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();
}

1 Ответ

3 голосов
/ 08 марта 2011

В этом случае звучит так, будто вы хотите поместить свои контракты в отдельную контрактную сборку.

...