2012-06-26 47 views
1

服務棧項目之間共享服務的最佳方式是什麼?如何在服務堆棧中的項目之間共享服務?

我現在正在做的方式是繼承所需的服務。例如:

// Grabbing a service from another project 
public class ServiceA : AnotherNamespace.InAnotherAssembly.ServiceC 
{ 
} 

// Grabbing a service from another project 
public class ServiceB : AnotherNamespace.InAnotherAssembly.ServiceD 
{ 
} 

// Business as usual 
public class ServiceX : RestServiceBase<RequestPocoX> 
{ 
    .... 
} 

// Business as usual 
public class ServiceY : RestServiceBase<RequestPocoY> 
{ 
    .... 
} 

這使得服務棧自動線了所有的服務引用了APPHOST

public AppHost() : base("Combined Services", typeof(ServiceA).Assembly) 
{ 
} 

組裝時,這是一個合理的方法,還是有更好的方法?

我提出這個問題的原因是因爲遇到了嘗試在「ServiceD」中解析服務的問題。我想這可能是因爲IoC找不到它。

我希望這很清楚。

回答

2

您應該能夠將多個組件傳遞給構造函數:

public AppHost() 
    : base("Combined Services", 
     typeof(ServiceX).Assembly, 
     typeof(ServiceD).Assembly) 
{ 
} 
+0

這是最近除了SS?我不記得過去能夠做到這一點。 –

+0

@JeffMitchell簽名已經有了'params Assembly []'多年。 – mythz