Exemple #1
0
            public void DummyMethod()
            {
                CompositeBuilderInfo <MyComposite> cbi = null;
                CompositeBuilder cb = null;

                {
                    #region CompositeCreationCode6
                    // 'cbi' is of type CompositeBuilderInfo<MyComposite>
                    MyComposite prototype = cbi.Prototype();
                    prototype.MyProperty = "InitialValue";
                    MyComposite instance = cbi.Instantiate();
                    // 'instance' and 'prototype' now reference to same object,
                    // but setting instance.MyProperty to null will fail.
                    #endregion
                }

                {
                    #region CompositeCreationCode7
                    // 'cb' is of type CompositeBuilder
                    MyComposite prototype = cb.Prototype <MyComposite>();
                    // Alternatively, prototype could be acquired this way:
                    MyComposite prototype2 = (MyComposite)cb.PrototypeFor(typeof(MyComposite));
                    // 'prototype' and 'prototype2' reference to same object
                    prototype.MyProperty = "InitialValue";
                    MyComposite instance = cb.Instantiate <MyComposite>();
                    // 'instance, 'prototype' and 'prototype2' all reference
                    // to the same object.
                    // Setting instance.MyProperty to null will fail.
                    #endregion
                }
            }
Exemple #2
0
        public static void DummyMethod()
        {
            StructureServiceProvider ssp = null;
            Type myCompositeType         = null;

            #region CompositeCreationCode1
            // Acquiring CompositeBuilderInfo
            CompositeBuilderInfo <MyComposite> cbi = ssp.NewPlainCompositeBuilder <MyComposite>();

            // Acquiring CompositeBuilder, type of composite not known at compile time
            CompositeBuilder cb = ssp.NewPlainCompositeBuilder(myCompositeType); // myCompositeType is of System.Type

            // Acquiring CompositeBuilder and using multiple types to filter out possible composites
            CompositeBuilder cbm = ssp.NewPlainCompositeBuilder(new[] { typeof(MyCompositePartialType1), typeof(MyCompositePartialType2) });
            #endregion

            {
                #region CompositeCreationCode2
                MyComposite composite = cbi.Instantiate();
                #endregion
            }

            {
                #region CompositeCreationCode3
                MyComposite composite  = cb.Instantiate <MyComposite>();
                MyComposite composite2 = (MyComposite)cb.InstantiateWithType(typeof(MyComposite));
                // Both composite and composite2 will be same object.
                #endregion
            }

            {
                #region CompositeCreationCode4
                MyCompositePartialType1 composite1 = cbm.Instantiate <MyCompositePartialType1>();
                MyCompositePartialType2 composite2 = cbm.Instantiate <MyCompositePartialType2>();
                // composite1 and composite2 may be different objects.
                #endregion
            }
        }