Example #1
0
        /// <include file='doc\DesignerService.uex' path='docs/doc[@for="DesignerService.IVSMDDesignerService.CreateDesignerForClass"]/*' />
        /// <devdoc>
        ///     Creates an instance of the designer using the provided information.
        /// </devdoc>
        IVSMDDesigner IVSMDDesignerService.CreateDesignerForClass(object provider, string componentClass)
        {
            IVSMDDesigner designer = null;

            try {
                Debug.WriteLineIf(Switches.DESIGNERSERVICE.TraceVerbose, "DesignerService::CreateDesignerForClass");
                if (!(provider is NativeMethods.IOleServiceProvider))
                {
                    throw new ArgumentException("provider");
                }

                DocumentManager dm = GetDocumentManager();
                if (dm != null)
                {
                    ServiceProviderArray docProvider = new ServiceProviderArray(new IServiceProvider[] { new DesignerServiceProvider((NativeMethods.IOleServiceProvider)provider), this });
                    designer = (IVSMDDesigner)dm.CreateDesigner(componentClass, docProvider);
                }
            }
            catch (Exception e) {
                Debug.Fail("Failed to create designer", e.ToString());
                throw e;
            }

            return(designer);
        }
Example #2
0
        /// <include file='doc\DesignerService.uex' path='docs/doc[@for="DesignerService.IVSMDDesignerService.CreateDesigner"]/*' />
        /// <devdoc>
        ///     Creates an instance of the designer using the provided information.
        /// </devdoc>
        IVSMDDesigner IVSMDDesignerService.CreateDesigner(object provider, object designerLoader)
        {
            CodeDomLoader.StartMark();

            IVSMDDesigner designer = null;

            try {
                Debug.WriteLineIf(Switches.DESIGNERSERVICE.TraceVerbose, "DesignerService::CreateDesigner");
                if (!(provider is NativeMethods.IOleServiceProvider))
                {
                    throw new ArgumentException("provider");
                }

                if (!(designerLoader is DesignerLoader))
                {
                    Debug.WriteLineIf(Switches.DESIGNERSERVICE.TraceVerbose, "\tERROR: Code stream does not extend DesignerLoader");
                    throw new Exception(SR.GetString(SR.DESIGNERSERVICEBadDesignerLoader, SR.GetString(SR.DESIGNERSERVICEUnknownName)));
                }

                DocumentManager dm = GetDocumentManager();
                if (dm != null)
                {
                    ServiceProviderArray docProvider = new ServiceProviderArray(new IServiceProvider[] { new DesignerServiceProvider((NativeMethods.IOleServiceProvider)provider), this });
                    designer = (IVSMDDesigner)dm.CreateDesigner((DesignerLoader)designerLoader, docProvider);
                }
            }
            catch (Exception e) {
                Debug.Fail("Failed to create designer", e.ToString());
                throw e;
            }

            CodeDomLoader.EndMark("CreateDesigner");

            return(designer);
        }