3

エンタープライズライブラリ5.0データアクセスアプリケーションブロックを構成する方法を理解しようとしています。単体テストを実行すると、次のエラーが発生します。

Microsoft.Practices.ServiceLocation.ActivationException was caught
  Message=Activation error occured while trying to get instance of type Database, key "PokerAdviserProvider"
  InnerException: Microsoft.Practices.Unity.ResolutionFailedException
       Message=Resolution of the dependency failed, type = "Microsoft.Practices.EnterpriseLibrary.Data.Database", name = "PokerAdviserProvider".
Exception occurred while: while resolving.
Exception is: InvalidOperationException - The type Database cannot be constructed. You must configure the container to supply this value.

これを取得するコード行:

var db = DatabaseFactory.CreateDatabase("PokerAdviserProvider");

App.config:

<configuration>
    <configSections>
        <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
    </configSections>
    <dataConfiguration defaultDatabase="PokerAdviserProvider" />
    <connectionStrings>
        <add name="PokerAdviserProvider" connectionString="server=(localhost);Initial Catalog=PokerAdviser;uid=abc;pwd=xyz"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

私は少し調べてみて、これらの設定も私のunittest-projectのapp.Configに入れるべきであるといういくつかの答えを見つけましたが、それは違いを生みませんでした。

私はここで少し立ち往生しているので、どんな助けでも大歓迎です。

編集:

正しいdll(ソースコードからではなくプログラムファイルからのもの)を参照したので、それも問題ではありません。

4

3 に答える 3

2

私はついにこの問題を修正しました:

Error: Activation error occured while trying to get instance of type Database, key "<database name>"

Inner Exception:  Resolution of the dependency failed, type = Microsoft.Practices.EnterpriseLibrary.Data.Database

私はWindows7、Enlib5.0でVS2010を実行していました。以下は私のために働いた。言葉を広めたかった

  1. Microsoft.Practices.Unity.dllへの適切な参照があることを確認してください

  2. VS2010の最新のサービスパックを入手する

于 2012-02-22T09:34:09.707 に答える
0

ついにそれを理解した。WebサービスのクラスライブラリでDAABを使用しており、そのライブラリにapp.configを作成する必要があると考えました。これが機能しないことを知っている必要があります。これをするとき、私の心はおそらく遠く離れていました...

Webサービスのweb.configで構成を行ったところ、すべてがスムーズに実行されるようになりました。

于 2011-04-12T21:10:15.397 に答える
0

エンタープライズライブラリの構成については、post1post2の2つの優れた投稿を参照してください。

于 2012-11-26T09:01:55.457 に答える