WCFデータサービス(OData)でUnityを使用しようとしています。UnityとOData(WCFデータサービス)
public class PatientService : DataService<IPatientRepository>
私は団結が実行時にIPatientRepositoryのための正しいオブジェクトを挿入したい(実PatientRepositoryまたは私がテストに使用偽造1のいずれか。)
私が持っている:私はこのようなコードを持っています
IUnityContainer container = new UnityContainer();
container.RegisterType<IPatientRepository, MyEntities>();
しかし、私は実行したときに私が取得:行わ
サーバーは、エラー処理が発生しましたリクエスト。例外メッセージは 'データプロバイダを作成できません。 'PatientService.PatientService'のデータソースの 'RepositoryInterfaces.IPatientRepository'は抽象型です。 '
この依存性を注入する方法はありますか?それとも本当のクラスをその場所に置く必要がありますか?
DataServiceを定義できます.Tはインターフェイスです。ただし、CreateDataSourceメソッドをオーバーライドして、そのインターフェイスを実装するコンテキストクラスをインスタンス化する必要があります。それが注射でうまくいくかどうかわからない。 –
@Vitek:CreateDataSourceをオーバーライドして、オーバーライドでServiceLocatorを使用しているとしたら?それはうまくいくかもしれない。 –
ServiceLocatorを使用しないようにしてください。これは、Microsoft Patterns and PracticesのServiceLocatorクラスのオリジナル開発者であったMark Seemannのhttp://blog.ploeh.dk/2010/02/03/ServiceLocatorisanAnti-Pattern/に記載されているような反パターンです。彼は正当な理由でそれをすぐに消してしまった。 –