Zetbox.API.InterfaceType.Create C# (CSharp) Method

Create() static private method

static private Create ( Type type, IInterfaceTypeChecker typeChecker ) : InterfaceType
type System.Type
typeChecker IInterfaceTypeChecker
return InterfaceType
        internal static InterfaceType Create(Type type, IInterfaceTypeChecker typeChecker)
        {
            lock (_cacheLock)
            {
                if (type == null) return new InterfaceType(); // Possible, because a Type could be loaded from an XML File which does not exists in this Zetbox instance
                if (_cache.ContainsKey(type)) return _cache[type];
                var ift = new InterfaceType(type, typeChecker);
                _cache[type] = ift;
                return ift;
            }
        }

Usage Example

コード例 #1
0
        protected override void Load(ContainerBuilder builder)
        {
            base.Load(builder);

            builder
            .Register <InterfaceType>((c, p) => InterfaceType.Create(p.Named <Type>("type"), c.Resolve <IInterfaceTypeChecker>()))
            .InstancePerDependency();

            builder
            .Register <LoggingProblemReporter>(c => new LoggingProblemReporter())
            .As <IProblemReporter>()
            .SingleInstance();

            builder
            .RegisterModule(new SmtpMailSender.Module());

            builder
            .RegisterAssemblyTypes(typeof(ApiModule).Assembly)
            .Except <SimpleCmdLineAction>()
            .AssignableTo <CmdLineAction>()
            .As <Option>()
            .InstancePerLifetimeScope();

            builder
            .RegisterAssemblyTypes(typeof(ApiModule).Assembly)
            .Except <SimpleCmdLineData>()
            .Except <SimpleCmdLineFlag>()
            .AssignableTo <CmdLineData>()
            .As <Option>()
            .InstancePerLifetimeScope();

            builder
            .RegisterType <ServiceControlManager>()
            .As <IServiceControlManager>()
            .SingleInstance();

            builder
            .RegisterType <DefaultFileOpener>()
            .AsImplementedInterfaces()
            .SingleInstance();

            builder
            .RegisterType <ZetboxStreamReader>()
            .AsSelf()
            .InstancePerDependency();

            builder
            .RegisterType <ZetboxStreamWriter>()
            .AsSelf()
            .InstancePerDependency();

            builder
            .RegisterType <TypeMap>()
            .AsSelf()
            .SingleInstance();

            builder
            .RegisterType <TempFileService>()
            .As <ITempFileService>()
            .SingleInstance();
        }