示例#1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            base.OnCreate(savedInstanceState);

            // Init IoC Container
            var container     = TinyIoCContainer.Current;
            var tinyContainer = new TinyContainer(container);

            container.Register <IDependencyContainer>(tinyContainer);

            Resolver.SetResolver(new TinyResolver(container));

            // Init Forms
            Forms.SetFlags("FastRenderers_Experimental");
            Forms.Init(this, savedInstanceState);

            // Handle Device Rotation
            MessagingCenter.Subscribe <RotationAwarePage, InterfaceOrientationTypes>(this, RotationAwarePage.NewPageOrientationRequestedMessage, NewOrientationRequested);

            // Set default orientation
            RequestedOrientation = ScreenOrientation.Portrait;

            // Load App
            LoadApplication(new App());
        }
示例#2
0
        public override bool FinishedLaunching(UIApplication uiApplication, NSDictionary launchOptions)
        {
            // Init IoC Container
            var container     = TinyIoCContainer.Current;
            var tinyContainer = new TinyContainer(container);

            container.Register <IDependencyContainer>(tinyContainer);

            Resolver.SetResolver(new TinyResolver(container));

            // Init Forms
            Forms.Init();

            LoadApplication(new App());

            // Init PDF Viewer
            var builder = new ContainerBuilder();

            builder.RegisterType <DocumentBookmarksManager>().As <IDocumentBookmarksManager>().SingleInstance();
            builder.RegisterType <DocumentNoteManager>().As <IDocumentNoteManager>().SingleInstance();
            builder.RegisterType <SettingsManager>().As <ISettingsManager>().SingleInstance();

            MgrAccessor.Initialize(builder);

            // Print out path to the documents folder
            System.Diagnostics.Debug.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));

            // Return...
            return(base.FinishedLaunching(uiApplication, launchOptions));
        }
示例#3
0
        public void TestContainerResolveInstance()
        {
            var container = new TinyContainer();

            container.RegisterTransient <SimpleDependency>();

            var dependency1 = container.Resolve <SimpleDependency>();

            Assert.IsNotNull(dependency1);
            Assert.IsInstanceOfType(dependency1, typeof(SimpleDependency));

            Assert.AreEqual(SimpleDependency.ActiveDependecies, 1);
            Assert.AreEqual(SimpleDependency.ResolveCounter, 1);

            var dependency2 = container.Resolve <SimpleDependency>();

            Assert.IsNotNull(dependency2);
            Assert.IsInstanceOfType(dependency2, typeof(SimpleDependency));

            Assert.AreEqual(SimpleDependency.ActiveDependecies, 2);
            Assert.AreEqual(SimpleDependency.ResolveCounter, 2);

            Assert.AreNotSame(dependency1, dependency2);

            container.Dispose();

            Assert.AreEqual(SimpleDependency.ActiveDependecies, 0);
        }
        public void WithFactory()
        {
            var tiny = new TinyContainer();

            tiny.Register(factory => new Simple());

            Assert.IsNotNull(tiny.Resolve <Simple>());
        }
        public void Interface()
        {
            var tiny = new TinyContainer();

            tiny.Register <ISimple, Simple>();

            Assert.IsNotNull(tiny.Resolve <ISimple>());
        }
示例#6
0
        public void Basic()
        {
            var container = new TinyContainer();

            new MyModule().RegisterServices(container);

            Assert.IsNotNull(container.Resolve <Simple>());
        }
示例#7
0
        public IosAppBootstrapper()
        {
            var container = TinyIoCContainer.Current;

            _tinyContainer = new TinyContainer(container);
            container.Register <IDependencyContainer>(_tinyContainer);
            Resolver.SetResolver(new TinyResolver(container));
        }
        public void Class()
        {
            var tiny = new TinyContainer();

            tiny.Register <Simple>();

            Assert.IsNotNull(tiny.Resolve <Simple>());
        }
        public void ThrowsOnReRegister()
        {
            var tiny = new TinyContainer();

            tiny.Register <Simple>();

            Assert.ThrowsException <TinyError>(() => tiny.Register <Simple>());
            Assert.ThrowsException <TinyError>(() => tiny.Register(factory => new Simple()));
        }
        public void Delegate()
        {
            var tiny = new TinyContainer();

            tiny.Register <Simple>()
            .Register <Func <Simple> >(factory => factory.Resolve <Simple>);

            Assert.IsNotNull(tiny.Resolve <Func <Simple> >()());
        }
        private void Awake()
        {
            TinyContainer.Global
            .Register(new LifeCyclePrinter())
            .Register <ILocalization>(new MockLocalization());

            TinyContainer.ForSceneOf(this)
            .Register <ISerializer>(new JsonSerializer());
        }
示例#12
0
        public void RegisterService_NoConstructorValid()
        {
            var container    = new TinyContainer();
            var typeInstance = new EmptyConreteType();

            container.RegisterService <IInterfaceParam, InterfaceParam>();
            container.RegisterService <ConcreteTypeMultiParam>();

            var instance = container.ResolveService <ConcreteTypeMultiParam>();
        }
        protected override ContainerFor <T> CreateSut <T>()
        {
            var container = new TinyContainer();

            container.Register <IDependency1, Dependency1>();
            container.Register <IDependency2, Dependency2>();
            container.Register <ConcreteObjectWithNoConstructor>();
            container.Register <ConcreteObjectWithMultipleConstructors>();
            return(new ContainerFor <T>(container));
        }
示例#14
0
        public void RegisterSingleton_WithInstanceTest()
        {
            var container    = new TinyContainer();
            var typeInstance = new EmptyConreteType();

            container.RegisterSingleton(typeInstance);

            var instance = container.ResolveService <EmptyConreteType>();

            Assert.AreEqual(instance, typeInstance);
        }
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            var container = new TinyContainer(TinyIoCContainer.Current);
            var resolver = TinyIoCModule.Setup(TinyIoCContainer.Current);
            Resolver.SetResolver(resolver);

            Forms.Init(this, bundle);
            LoadApplication(new App(container));
        }
        protected override ContainerFor <T> CreateSut <T>()
        {
            var container = new TinyContainer(new TinyIoCContainer());

            container.Set <IDependency1, Dependency1>();
            container.Set <IDependency2, Dependency2>();
            container.SetMultiple <IDependency3>(new [] { typeof(Dependency3), typeof(Dependency4) });
            container.Set <ConcreteObjectWithNoConstructor>();
            container.Set <ConcreteObjectWithMultipleConstructors>();
            container.Set <ConcreteObjectWithOneInterfaceCollectionConstructor>();
            return(new ContainerFor <T>(container));
        }
        public void ComplexClass()
        {
            var tiny = new TinyContainer();

            tiny.Register <Simple>()
            .Register <ISimple, Simple>()
            .Register <Func <Simple> >(factory => () => new Simple())
            .Register <IComplex, Complex>();

            var simpleInstance = tiny.Resolve <IComplex>();

            Assert.IsNotNull(simpleInstance);
        }
示例#18
0
        public void RegisterService_OnlyOneConstructorValid()
        {
            var container    = new TinyContainer();
            var typeInstance = new EmptyConreteType();

            container.RegisterService <SecondParam>();
            container.RegisterService <IInterfaceParam, InterfaceParam>();
            container.RegisterService <ConcreteTypeMultiParam>();

            var instance = container.ResolveService <ConcreteTypeMultiParam>();

            Assert.AreEqual(true, instance != null);
        }
示例#19
0
        public void ExtensionMethods()
        {
            var container = new TinyContainer();

            new MyModule().RegisterServices(container);
            // or
            container.RegisterModule(new MyModule());
            // or
            container.RegisterModule <MyOtherModule>();

            Assert.IsNotNull(container.Resolve <Simple>());
            Assert.IsNotNull(container.Resolve <ISimple>());
        }
示例#20
0
        public static void SetupIoC()
        {
            var container     = TinyIoCContainer.Current;
            var tinyContainer = new TinyContainer(container);

            container.Register <IDependencyContainer>(tinyContainer);
            Resolver.SetResolver(new TinyResolver(container));

            // tinyContainer.RegisterSingle<IDevice, IosDevice>();

            // Set up Forms IoC
            FormsBootstrapper.SetupForms();
        }
示例#21
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            var container = new TinyContainer(TinyIoCContainer.Current);
            var resolver = TinyIoCModule.Setup(TinyIoCContainer.Current);
            Resolver.SetResolver(resolver);

            Corcav.Behaviors.Infrastructure.Init();
            UserDialogs.Init(this);

            Forms.Init(this, bundle);
            LoadApplication(new App(container));
        }
示例#22
0
        public void TestContainerResolveSingleton()
        {
            var container = new TinyContainer();

            container.RegisterSignleton <SimpleDependency>();

            var result1 = container.Resolve <SimpleDependency>();
            var result2 = container.Resolve <SimpleDependency>();

            Assert.AreSame(result1, result2);
            Assert.AreEqual(SimpleDependency.ActiveDependecies, 1);

            container.Dispose();
        }
        public static void SetupIoC()
        {
            var container     = TinyIoCContainer.Current;
            var tinyContainer = new TinyContainer(container);

            container.Register <IDependencyContainer>(tinyContainer);
            if (!Resolver.IsSet)
            {
                Resolver.SetResolver(new TinyResolver(container));
            }


            // Set up Forms IoC
            FormsBootstrapper.SetupForms();
        }
示例#24
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            var container = new TinyContainer(TinyIoCContainer.Current);
            var resolver  = TinyIoCModule.Setup(TinyIoCContainer.Current);

            Resolver.SetResolver(resolver);

            Corcav.Behaviors.Infrastructure.Init();
            UserDialogs.Init(this);

            Forms.Init(this, bundle);
            LoadApplication(new App(container));
        }
        public void TestResolitionWithAutowiring()
        {
            var container = new TinyContainer();

            container.RegisterTransient <ITestDependency, SimpleDependency>()
            .RegisterTransient <CompositeDependecy>();

            var dependency = container.Resolve <CompositeDependecy>();

            Assert.IsNotNull(dependency);
            Assert.IsInstanceOfType(dependency, typeof(CompositeDependecy));

            Assert.IsNotNull(dependency.InnerDependency);
            Assert.IsInstanceOfType(dependency.InnerDependency, typeof(SimpleDependency));

            container.Dispose();

            Assert.IsNull(dependency.InnerDependency); // Checking that dependecny was disposed
        }
 public static TinyContainer RegisterTransient <TMappedType, TActualType>(this TinyContainer container, string name = null)
 {
     container.Register(typeof(TMappedType), new TransientLifetimeManager(typeof(TActualType)));
     return(container);
 }
示例#27
0
 private void Start()
 {
     TinyContainer.For(this)
     .Get(out _localization)
     .Get(out _serializer);
 }
 public static TinyContainer RegisterSignleton <TObject>(this TinyContainer container, TObject instance)
 {
     container.Register(typeof(TObject), new SingletonLifetimeManager(instance));
     return(container);
 }
 public static TDependency Resolve <TDependency>(this TinyContainer container)
 {
     return((TDependency)container.Resolve(typeof(TDependency)));
 }
 public static TinyContainer RegisterTransient <TDependency>(this TinyContainer container)
 => RegisterTransient <TDependency, TDependency>(container);