GetMetadataAndThrow() 공개 메소드

Gets the attribute and throws the handed exception if the exception if the attribute is empty or null.
The method will throw an Exception and neglect the passed in exception if the attribute is deleted
public GetMetadataAndThrow ( string attributeName, Exception exception ) : string
attributeName string The name of the attribute to get.
exception System.Exception The exception to be thrown if not found or empty.
리턴 string
예제 #1
0
        /// <summary>
        /// Get information from the registry based for the project
        /// factory corresponding to the TypeGuid of the element
        /// </summary>
        private RegisteredProjectType GetRegisteredProject(ProjectElement element)
        {
            ProjectElement elementToUse = (element == null) ? this.nestedProjectElement : element;

            if (elementToUse == null)
            {
                throw new ArgumentNullException("element");
            }

            // Get the project type guid from project elementToUse
            string typeGuidString     = elementToUse.GetMetadataAndThrow(ProjectFileConstants.TypeGuid, new Exception());
            Guid   projectFactoryGuid = new Guid(typeGuidString);

            EnvDTE.DTE dte = this.ProjectMgr.Site.GetService(typeof(EnvDTE.DTE)) as EnvDTE.DTE;
            Debug.Assert(dte != null, "Could not get the automation object from the services exposed by this project");

            if (dte == null)
            {
                throw new InvalidOperationException();
            }

            RegisteredProjectType registeredProjectType = RegisteredProjectType.CreateRegisteredProjectType(projectFactoryGuid);

            Debug.Assert(registeredProjectType != null, "Could not read the registry setting associated to this project.");
            if (registeredProjectType == null)
            {
                throw new InvalidOperationException();
            }
            return(registeredProjectType);
        }
        /// <summary>
        /// Get information from the registry based for the project
        /// factory corresponding to the TypeGuid of the element
        /// </summary>
        private RegisteredProjectType GetRegisteredProject(ProjectElement element)
        {
            ProjectElement elementToUse = (element == null) ? this.nestedProjectElement : element;

            if (elementToUse == null)
            {
                throw new ArgumentNullException("element");
            }

            // Get the project type guid from project elementToUse
            string typeGuidString     = elementToUse.GetMetadataAndThrow(ProjectFileConstants.TypeGuid, new Exception());
            Guid   projectFactoryGuid = new Guid(typeGuidString);

            return(ThreadHelper.JoinableTaskFactory.Run(async delegate
            {
                await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();

                RegisteredProjectType registeredProjectType = RegisteredProjectType.CreateRegisteredProjectType(projectFactoryGuid);
                Debug.Assert(registeredProjectType != null, "Could not read the registry setting associated to this project.");
                if (registeredProjectType == null)
                {
                    throw new InvalidOperationException();
                }
                return registeredProjectType;
            }));
        }