2

StructureMapでは、プラグインタイプごとに1つのライフサイクルポリシーしか持てないようです。これを回避する方法はありますか?このシンプルなコンソールアプリは、ライフサイクルが「最後」「勝つ」ことを示しています。

namespace StructureMapLifecycle
{
  public class Program
  {
    public static void Main(string[] args)
    {
      StructureMap.ObjectFactory.Initialize(
        x =>
        {
          x.For<ISomething>().Add<SomethingA>().Named("A");
          x.For<ISomething>().Singleton().Add<SomethingB>().Named("B");
          x.For<ISomething>().Add<SomethingC>().Named("C");
          x.For<ISomething>().HybridHttpOrThreadLocalScoped().Use<SomethingC>();
        });

      Console.Write(StructureMap.ObjectFactory.WhatDoIHave());
      Console.ReadLine();
    }
  }

  public interface ISomething
  {
    void DoSomething();
  }

  public class SomethingA : ISomething
  {
    public void DoSomething()
    {
      Console.WriteLine("Do something A");
    }
  }

  public class SomethingB : ISomething
  {
    public void DoSomething()
    {
      Console.WriteLine("Do something B");
    }
  }

  public class SomethingC : ISomething
  {
    public void DoSomething()
    {
      Console.WriteLine("Do something C");
    }
  }
}
4

2 に答える 2

4

私の同僚は、JeremyMillerがこれはStructureMapの長い時間の制限であると述べていることを発見しました。 http://jeremydmiller.com/2012/01/11/kicking-off-structuremap-3/

于 2012-06-20T14:46:59.440 に答える
0

これはStructureMap3.0で修正されました。これで、個々のインスタンスのライフサイクルを簡単に変更できます。

于 2014-04-24T13:22:59.213 に答える