質問

私が使用してこののTimeSpanを解決しようとしています< href = "http://msdn.microsoft.com/en-us/library/cc468366.aspx" のrel = "nofollowをnoreferrer">ユニティの。 FatalExecutionEngineError の中でコンテナ解決コール結果を実行します。

  

FatalExecutionEngineErrorが検出されました   メッセージ:ランタイムは、致命的なエラーが発生しました。エラーのアドレスは、スレッド0x1bb8に、0x543c3dc8にありました。エラーコードは0xc0000005です。このエラーは、CLRまたはユーザコードの危険または非検証部分のバグであってもよいです。このバグの共通ソースは、ユーザのCOM相互運用またはのPInvokeのエラーをマーシャリング月破損スタックを含む。

DEBUGでテストを実行すると、次のファイルがデバッガによって要求されるようになります。

  

X:\ユニティ\ SRC \ ObjectBuilder \戦略\ BuildPlan \ DynamicMethod \ DynamicMethodBuildPlan.cs

そして、それはライン38上で ExecutionEngineException に次のことを示しています。

  

System.ExecutionEngineExceptionは、未処理でした     メッセージには、「型 『System.ExecutionEngineException』の例外がスローされました。」=     InnerException:

テスト

[TestClass]
public class Example
{
    private readonly IUnityContainer container = new UnityContainer();

    [TestInitialize]
    public void TestInitialize()
    {
        container.Register<TimeSpan>(new ExternallyControlledLifetimeManager());
    }

    [TestMethod]
    public void Test()
    {
        var expected = new TimeSpan();
        var actual = container.Resolve<TimeSpan>();
        Assert.AreEqual(expected, actual);
    }
}
役に立ちましたか?

解決

あなたがエラーを取得する私はなぜわからないんだけど、私はそれが動作します以下で(設定ファイルにあなたが出て編集した)タイプの構成を交換しようとします。

<instances>
   <add name="MyTimeSpan" type="System.TimeSpan" value="1.02:03:04"  />
</instances>

var duration = container.Resolve<TimeSpan>("MyTimeSpan");

上記の1日、2時間、3分、4秒の持続時間とタイムスパンを返す必要があります。

(私はユニティ4.1でこれを試してみました)
scroll top