예제 #1
0
        /// <summary>
        /// Format an error reported by the code generator to message string reported to the user.
        /// </summary>
        /// <param name="generationError"></param>
        /// <return></return>
        /// <remarks></remarks>
        private static string ConvertToBuildProviderErrorMessage(ProxyGenerationError generationError)
        {
            string errorMessage = generationError.Message;

            if (!String.IsNullOrEmpty(generationError.MetadataFile))
            {
                if (generationError.LineNumber < 0)
                {
                    errorMessage = String.Format(CultureInfo.CurrentCulture, "'{0}': {1}", generationError.MetadataFile, errorMessage);
                }
                else if (generationError.LinePosition < 0)
                {
                    errorMessage = String.Format(CultureInfo.CurrentCulture, "'{0}' ({1}): {2}", generationError.MetadataFile, generationError.LineNumber, errorMessage);
                }
                else
                {
                    errorMessage = String.Format(CultureInfo.CurrentCulture, "'{0}' ({1},{2}): {3}", generationError.MetadataFile, generationError.LineNumber, generationError.LinePosition, errorMessage);
                }
            }
            return(errorMessage);
        }
 /// <summary>
 /// Convert metadata loading errors into proxy generation error messages
 /// </summary>
 /// <return></return>
 /// <remarks></remarks>
 internal static ProxyGenerationError ConvertMetadataErrorToProxyGenerationError(MetadataFile metadataItem, Exception ex)
 {
     ProxyGenerationError generationError = null;
     if (ex is XmlSchemaException)
     {
         generationError = new ProxyGenerationError(ProxyGenerationError.GeneratorState.LoadMetadata, metadataItem.FileName, (XmlSchemaException)ex);
     }
     else if (ex is XmlException)
     {
         generationError = new ProxyGenerationError(ProxyGenerationError.GeneratorState.LoadMetadata, metadataItem.FileName, (XmlException)ex);
     }
     else if (ex is InvalidOperationException)
     {
         System.Xml.Schema.XmlSchemaException schemaException = ex.InnerException as System.Xml.Schema.XmlSchemaException;
         if (schemaException != null)
         {
             generationError = new ProxyGenerationError(ProxyGenerationError.GeneratorState.LoadMetadata, metadataItem.FileName, schemaException);
         }
         else
         {
             System.Xml.XmlException xmlException = ex.InnerException as System.Xml.XmlException;
             if (xmlException != null)
             {
                 generationError = new ProxyGenerationError(ProxyGenerationError.GeneratorState.LoadMetadata, metadataItem.FileName, xmlException);
             }
             else
             {
                 generationError = new ProxyGenerationError(ProxyGenerationError.GeneratorState.LoadMetadata, metadataItem.FileName, (InvalidOperationException)ex);
             }
         }
     }
     else
     {
         generationError = new ProxyGenerationError(ProxyGenerationError.GeneratorState.LoadMetadata, metadataItem.FileName, ex);
     }
     return generationError;
 }
 /// <summary>
 /// Format an error reported by the code generator to message string reported to the user.
 /// </summary>
 /// <param name="generationError"></param>
 /// <return></return>
 /// <remarks></remarks>
 private static string ConvertToBuildProviderErrorMessage(ProxyGenerationError generationError)
 {
     string errorMessage = generationError.Message;
     if (!String.IsNullOrEmpty(generationError.MetadataFile))
     {
         if (generationError.LineNumber < 0)
         {
             errorMessage = String.Format(CultureInfo.CurrentCulture, "'{0}': {1}", generationError.MetadataFile, errorMessage);
         }
         else if (generationError.LinePosition < 0)
         {
             errorMessage = String.Format(CultureInfo.CurrentCulture, "'{0}' ({1}): {2}", generationError.MetadataFile, generationError.LineNumber, errorMessage);
         }
         else
         {
             errorMessage = String.Format(CultureInfo.CurrentCulture, "'{0}' ({1},{2}): {3}", generationError.MetadataFile, generationError.LineNumber, generationError.LinePosition, errorMessage);
         }
     }
     return errorMessage;
 }