Test

Test


<pre style="background:#2a211c;color:#bdae9d"><span style="color:#43a8ed;font-weight:700">class </span>Warrior

{

   <span style="color:#43a8ed;font-weight:700">private</span> IWeapon _weapon;


   <span style="color:#43a8ed;font-weight:700">public</span> <span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">Warrior</span></span>(<span style="color:#318495">IWeapon</span> <span style="color:#318495">weapon</span>)

   {

       <span style="color:#318495">_weapon</span> <span style="color:#687687">=</span><span style="color:#318495"> weapon</span>;

   }


   <span style="color:#43a8ed;font-weight:700">public</span> <span style="color:#687687">void</span> <span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">Fight</span></span>()

   {

       _weapon.<span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">Use</span></span>();

   }

}


<span style="color:#43a8ed;font-weight:700">class </span>SingleWarrior

{

   <span style="color:#43a8ed;font-weight:700">private</span> IWeapon _weapon;


   <span style="color:#43a8ed;font-weight:700">public</span> IWeapon Weapon

   {

       <span style="color:#43a8ed;font-weight:700">get</span>

       {

           <span style="color:#43a8ed;font-weight:700">if</span> (<span style="color:#318495">_weapon</span> <span style="color:#687687">==</span><span style="color:#585cf6;font-weight:700"> null</span>)

           {

               <span style="color:#318495">_weapon</span> <span style="color:#687687">=</span> ServiceLocator.Current.<span style="color:#318495">GetInstance</span><span style="color:#687687">&lt;</span><span style="color:#318495">IWeapon</span><span style="color:#687687">></span>();

           }

           <span style="color:#43a8ed;font-weight:700">return</span> _weapon;

       }

   }


   <span style="color:#43a8ed;font-weight:700">public</span> <span style="color:#687687">void</span> <span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">Fight</span></span>()

   {

       Weapon.<span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">Use</span></span>();

   }

}


<span style="color:#43a8ed;font-weight:700">class </span>App_Start

{

   internal static UnityContainer <span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">RegTypesInContainer</span></span>()

   {

       var <span style="color:#318495">container</span> <span style="color:#687687">=</span><span style="color:#43a8ed;font-weight:700"> new </span><span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">UnityContainer</span></span>();


       container.<span style="color:#318495">RegisterType</span><span style="color:#687687">&lt;</span><span style="color:#318495">IWeapon</span>,<span style="color:#318495"> Sword</span><span style="color:#687687">></span>();


       <span style="color:#43a8ed;font-weight:700">return</span> container;

   }



   internal static <span style="color:#687687">void</span> <span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">RegTypesInServiceLocator</span></span>()

   {

       var <span style="color:#318495">Container</span> <span style="color:#687687">=</span><span style="color:#43a8ed;font-weight:700"> new </span><span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">UnityContainer</span></span>();


       Container.<span style="color:#318495">RegisterType</span><span style="color:#687687">&lt;</span><span style="color:#318495">IWeapon</span>,<span style="color:#318495"> Bazooka</span><span style="color:#687687">></span>();


       var <span style="color:#318495">MySingleton</span> <span style="color:#687687">=</span><span style="color:#43a8ed;font-weight:700"> new </span><span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">UnityServiceLocator</span></span>(<span style="color:#318495">Container</span>);


       ServiceLocator.<span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">SetLocatorProvider</span></span>(() <span style="color:#687687">=</span><span style="color:#687687">></span><span style="color:#318495"> MySingleton</span>);

   }

}


<span style="color:#43a8ed;font-weight:700">class </span>_PROGRAM_

{

   static <span style="color:#687687">void</span> <span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">Main</span></span>(<span style="color:#7290d9;font-weight:700">string</span>[] <span style="color:#318495">args</span>)

   {

       UnityContainer <span style="color:#318495">container</span> <span style="color:#687687">=</span> App_Start.<span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">RegTypesInContainer</span></span>();


       var <span style="color:#318495">samurai</span> <span style="color:#687687">=</span> container.<span style="color:#318495">Resolve</span><span style="color:#687687">&lt;</span><span style="color:#318495">Warrior</span><span style="color:#687687">></span>();


       samurai.<span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">Fight</span></span>();


       //<span style="color:#318495"> or</span> :


       App_Start.<span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">RegTypesInServiceLocator</span></span>();


       SingleWarrior <span style="color:#318495">warriorSingle</span> <span style="color:#687687">=</span><span style="color:#43a8ed;font-weight:700"> new </span><span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">SingleWarrior</span></span>();


       warriorSingle.<span style="color:#7290d9;font-weight:700"><span style="color:#ff9358;font-weight:700">Fight</span></span>();

   }

}


</pre>

Report Page