// =========================================================================================
        // Methods
        // =========================================================================================

        /// <summary>
        /// Gets a project property.
        /// </summary>
        /// <param name="propertyName">The name of the property to get.</param>
        /// <returns>
        /// Value of the property, or null if the property is unset or inconsistent across configurations.
        /// </returns>
        public override string GetProperty(string propertyName)
        {
            string value = base.GetProperty(propertyName);

            if (propertyName == XSharpProjectFileConstants.OutputType)
            {
                var outputType = (OutputType)converterOutPut.ConvertFrom(value);
                value = (string)converterOutPut.ConvertTo(outputType, typeof(System.String));
            }
            else if (propertyName == XSharpProjectFileConstants.Dialect)
            {
                var dialect = (Dialect)converterDialect.ConvertFrom(value);
                value = (string)converterDialect.ConvertTo(dialect, typeof(System.String));
            }
            else if (propertyName == XSharpProjectFileConstants.TargetFrameworkVersion)
            {
                if (!value.StartsWith(".NETFramework"))
                {
                    value = ".NETFramework,Version =" + value;
                }
                value = converterFramework.ConvertFrom(value).ToString();
            }
            if (propertyName == XSharpProjectFileConstants.StartupObject)
            {
                if (string.IsNullOrEmpty(value))
                {
                    value = XGeneralPropertyPagePanel.DefaultValue;
                }
            }

            return(value);
        }