Ejemplo n.º 1
0
    public static void Main(string[] args)
    {
        ContainerBuilder builder = new ContainerBuilder();

        builder.RegisterType <Interceptor>();
        builder.RegisterType <Dependency>().As <IDependency>();
        builder.RegisterType <Final>().As <IFinal>();
        builder.Register <IFinal>((c, p) =>
        {
            IDependency dependency = c.Resolve <IDependency>();
            int runtimeArgument    = p.Named <int>("runtimeArgument");
            return(new Final(dependency, runtimeArgument));
        }).As <IFinal>()
        .EnableInterfaceInterceptors()
        .InterceptedBy(typeof(Interceptor));
        builder.Register <Factory>((c, p) => {
            Factory.FactoryMethod finalObjectFactoryMethod = c.Resolve <Factory.FactoryMethod>();
            return(new Factory(finalObjectFactoryMethod));
        }).As <IFactory>()
        .EnableInterfaceInterceptors()
        .InterceptedBy(typeof(Interceptor));
        IContainer container = builder.Build();
        IFactory   factory   = container.Resolve <IFactory>();
        IFinal     final     = factory.GetFinalObject(42);

        final.Test();
    }
Ejemplo n.º 2
0
        public FinalNode(DocumentIdNode documentIdNode, IFinal final) : base(documentIdNode, children: null)
        {
            _final = final;

            Id       = final.Id ?? new IdentifierNode(Identifier.New());
            OnEntry  = final.OnEntry.AsArrayOf <IOnEntry, OnEntryNode>(true);
            OnExit   = final.OnExit.AsArrayOf <IOnExit, OnExitNode>(true);
            DoneData = final.DoneData?.As <DoneDataNode>();
        }