2011-03-07 52 views
1

基本上,我有我的Client.exe项目中下面的类:最佳实践:您如何正确地将您的合同暴露给MEF使用的外部服务?

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是什么(除非我将相同的代码复制到它中)。

ServiceContracts.dll项目:IBarService.cs

public interface IBarService 
{ 
    int GetBar(); 
} 

回答

3

在这种情况下,它听起来就像你想要把你的合同在一个单独的承包装配。