当前位置: 首页>>代码示例>>C#>>正文


C# StandardKernel.CreateEmptyNode方法代码示例

本文整理汇总了C#中StandardKernel.CreateEmptyNode方法的典型用法代码示例。如果您正苦于以下问题:C# StandardKernel.CreateEmptyNode方法的具体用法?C# StandardKernel.CreateEmptyNode怎么用?C# StandardKernel.CreateEmptyNode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在StandardKernel的用法示例。


在下文中一共展示了StandardKernel.CreateEmptyNode方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Main

        public static void Main(string[] args)
        {
            #if PLATFORM_IOS
            UIApplication.Main(args, null, "AppDelegate");
            #else
            var kernel = new StandardKernel();

            var controllers = kernel.CreateScopeFromNode(kernel.CreateEmptyNode("Controllers"));
            kernel.Bind<IInput>().To<DefaultInput>().InScope(controllers).EnforceOnePerScope();
            kernel.Bind<IMovement>().To<DefaultMovement>().InScope(controllers).EnforceOnePerScope();

            var gameSessionNode = kernel.CreateEmptyNode("GameSession");
            var gameSession = kernel.CreateScopeFromNode(gameSessionNode);
            var networking = kernel.CreateScopeFromNode(kernel.CreateEmptyNode("Networking", gameSessionNode));
            var profiling = kernel.CreateScopeFromNode(kernel.CreateEmptyNode("Profiling", gameSessionNode));

            kernel.Bind<IProfiler>().To<DefaultProfiler>().InScope(profiling).EnforceOnePerScope();
            kernel.Bind<IProfilerUtil>().To<DefaultProfilerUtil>().InScope(profiling).EnforceOnePerScope();

            kernel.Bind<INetworkingSession>().To<NetworkingSession>().InScope(networking).EnforceOnePerScope();
            kernel.Bind<INetworkingPlayer>().To<NetworkingPlayer>().InScope(networking);

            kernel.Bind<IWorld>().To<DefaultWorld>();
            kernel.Bind<IPlayer>().To<Player>();

            var worldPlan = kernel.Plan<IWorld>(null, null, "world1");
            var worldPlan2 = kernel.Plan<IWorld>(null, null, "world2");
            //kernel.Validate(worldPlan);
            //var world = kernel.Resolve(worldPlan);

            Console.WriteLine("==== AFTER PLANNING TWO WORLDS ====");
            foreach (var root in kernel.Hierarchy.RootNodes)
            {
                Console.Write(root.GetDebugRepresentation());
            }

            /*
            kernel.Discard(worldPlan);

            Console.WriteLine("==== AFTER DISCARDING WORLD 1 ====");
            foreach (var root in kernel.Hierarchy.RootNodes)
            {
                Console.Write(root.GetDebugRepresentation());
            }
            */

            kernel.ResolveToNode(worldPlan);

            Console.WriteLine("==== AFTER RESOLVING WORLD 1 ====");
            foreach (var root in kernel.Hierarchy.RootNodes)
            {
                Console.Write(root.GetDebugRepresentation());
            }

            kernel.ResolveToNode(worldPlan2);

            Console.WriteLine("==== AFTER RESOLVING WORLD 2 ====");
            foreach (var root in kernel.Hierarchy.RootNodes)
            {
                Console.Write(root.GetDebugRepresentation());
            }
            #endif
        }
开发者ID:silasary,项目名称:Protoinject,代码行数:63,代码来源:Program.cs


注:本文中的StandardKernel.CreateEmptyNode方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。