Condividi tramite


Diagnostica del generatore di origine in .NET 6+

Se il progetto .NET 6+ fa riferimento a un pacchetto che abilita la generazione di codice sorgente, ad esempio una soluzione di registrazione, gli analizzatori specifici per la generazione di origine verranno eseguiti in fase di compilazione. Questo articolo elenca la diagnostica del compilatore correlata al codice generato dall'origine.

Se si riscontra uno di questi errori o avvisi di compilazione, seguire le indicazioni specifiche fornite per l'ID di diagnostica elencato nella sezione Riferimenti. È anche possibile non visualizzare gli avvisi usando il valore ID di diagnostica specifico SYSLIB1XXX. Per ulteriori informazioni, vedere Sopprimere gli avvisi.

Avvisi dell'analizzatore

I valori ID di diagnostica riservati per gli avvisi dell'analizzatore del codice generato dall'origine vanno da SYSLIB1001 a SYSLIB1999.

Riferimento

Nella tabella seguente viene fornito un indice per la diagnostica SYSLIB1XXX in .NET 6 e versioni successive.

ID diagnostico Descrizione
SYSLIB1001 I nomi dei metodi di registrazione non possono iniziare con _
SYSLIB1002 Non includere i parametri di livello log come modelli nel messaggio di registrazione
SYSLIB1003 InvalidLoggingMethodParameterNameTitle
SYSLIB1004 La classe di registrazione non può essere in tipi annidati.
SYSLIB1005 Non è stato possibile trovare una definizione del tipo richiesto
SYSLIB1006 Più metodi di registrazione non possono usare lo stesso ID evento all'interno di una classe
SYSLIB1007 I metodi di registrazione devono restituire void
SYSLIB1008 Uno degli argomenti di un metodo di registrazione deve implementare l'interfaccia Microsoft.Extensions.Logging.ILogger
SYSLIB1009 I metodi di registrazione devono essere static
SYSLIB1010 I metodi di registrazione devono essere partial
SYSLIB1011 I metodi di registrazione non possono usare il allows ref struct vincolo
SYSLIB1012 Qualificatore ridondante nel messaggio di log
SYSLIB1013 Non includere i parametri di eccezione come modelli nel messaggio di registrazione
SYSLIB1014 Il modello di registrazione non ha alcun argomento del metodo corrispondente
SYSLIB1015 Il messaggio di log non fa riferimento all'argomento
SYSLIB1016 I metodi di registrazione non possono avere un corpo
SYSLIB1017 È necessario specificare un valore LogLevel nell'attributo LoggerMessage o come parametro per il metodo di registrazione
SYSLIB1018 Non includere i parametri del logger come modelli nel messaggio di registrazione
SYSLIB1019 Impossibile trovare un campo di tipo Microsoft.Extensions.Logging.ILogger
SYSLIB1020 Sono stati trovati più campi di tipo Microsoft.Extensions.Logging.ILogger
SYSLIB1021 Molti nomi di elementi modello di messaggio differiscono solo per maiuscole/minuscole
SYSLIB1022 Non è possibile avere stringhe in formato non valido (ad esempio, parentesi graffe non accoppiate)
SYSLIB1023 La creazione di più di sei argomenti non è supportata
SYSLIB1024 L'argomento del metodo di registrazione usa un modificatore di parametri out non supportato
SYSLIB1025 Più metodi di registrazione non possono usare lo stesso nome evento all'interno di una classe
SYSLIB1026 Versione del linguaggio C# non supportata dal generatore di origine di registrazione.
SYSLIB1027 Il parametro del costruttore primario di tipo Microsoft.Extensions.Logging.ILogger è nascosto da un campo
SYSLIB1028 L'argomento del metodo di registrazione usa un modificatore di parametro params o scoped non supportato.
SYSLIB1029 Il parametro del metodo di registrazione è un ref struct
SYSLIB1030 Il generatore di origine System.Text.Json non ha generato metadati di serializzazione per il tipo
SYSLIB1031 Il generatore System.Text.Json di origine ha rilevato un nome di proprietà JsonTypeInfo duplicato
SYSLIB1032 Il generatore di origine System.Text.Json ha rilevato una classe di contesto che non è parziale
SYSLIB1033 Il generatore di origine System.Text.Json ha rilevato un tipo con più annotazioni [JsonConstructor]
SYSLIB1034 JsonSourceGenerator ha rilevato un'annotazione JsonStringEnumConverter
SYSLIB1035 Il generatore di origine System.Text.Json ha rilevato un tipo con più annotazioni [JsonExtensionData]
SYSLIB1036 Il generatore di origine System.Text.Json ha rilevato un'annotazione [JsonExtensionData] non valida
SYSLIB1037 Il generatore di codice sorgente System.Text.Json ha rilevato un tipo con proprietà con inizializzazione unica per cui non è supportata la deserializzazione
SYSLIB1038 Il generatore di origine System.Text.Json ha rilevato una proprietà annotata con [JsonInclude] che dispone di funzioni di accesso inaccessibili
SYSLIB1039 JsonSourceGenerator ha rilevato un'annotazione JsonDerivedTypeAttribute con JsonSourceGenerationMode.Serialization abilitato
SYSLIB1040 Utilizzo di GeneratedRegexAttribute non valido.
SYSLIB1041 Allo stesso metodo sono stati applicati più attributiGeneratedRegexAttribute, ma ne è consentito solo uno.
SYSLIB1042 L'espressione regolare specificata non è valida.
SYSLIB1043 Un metodo GeneratedRegexAttribute deve essere parziale, senza parametri, non generico e non astratto e deve restituire Regex.
SYSLIB1044 Il generatore regex non è riuscito a generare un'implementazione di origine completa per l'espressione regolare specificata a causa di una limitazione interna. Per altri dettagli, vedere la spiegazione nell'origine generata.
SYSLIB1045 Usare GeneratedRegexAttribute per generare l'implementazione dell'espressione regolare in fase di compilazione.
SYSLIB1046 (Riservato a System.Text.RegularExpressions.Generator.)
SYSLIB1047 (Riservato a System.Text.RegularExpressions.Generator.)
SYSLIB1048 (Riservato a System.Text.RegularExpressions.Generator.)
SYSLIB1049 (Riservato a System.Text.RegularExpressions.Generator.)
SYSLIB1050 Utilizzo di LibraryImportAttribute non valido.
SYSLIB1051 Il tipo specificato non è supportato dai p/invoke generati dall'origine.
SYSLIB1052 La configurazione specificata non è supportata dai p/invoke generati dall'origine.
SYSLIB1053 Gli argomenti LibraryImportAttribute specificati non possono essere inoltrati a DllImportAttribute.
SYSLIB1054 Usare LibraryImportAttribute anziché DllImportAttribute per generare codice di marshalling p/invoke in fase di compilazione.
SYSLIB1055 Utilizzo di CustomMarshallerAttribute non valido.
SYSLIB1056 Il tipo nativo specificato non è valido.
SYSLIB1057 Il tipo di marshaller non ha la forma richiesta.
SYSLIB1058 Utilizzo di NativeMarshallingAttribute non valido.
SYSLIB1059 Il tipo marshaller non supporta un costruttore che alloca.
SYSLIB1060 Il tipo di marshaller specificato non è valido.
SYSLIB1061 Il tipo marshaller ha firme di metodo incompatibili.
SYSLIB1062 Il progetto deve essere aggiornato con <AllowUnsafeBlocks>true</AllowUnsafeBlocks>.
SYSLIB1063 (Riservato a Microsoft.Interop.LibraryImportGenerator.)
SYSLIB1064 (Riservato a Microsoft.Interop.LibraryImportGenerator.)
SYSLIB1065 (Riservato a Microsoft.Interop.LibraryImportGenerator.)
SYSLIB1066 (Riservato a Microsoft.Interop.LibraryImportGenerator.)
SYSLIB1067 (Riservato a Microsoft.Interop.LibraryImportGenerator.)
SYSLIB1068 (Riservato a Microsoft.Interop.LibraryImportGenerator.)
SYSLIB1069 (Riservato a Microsoft.Interop.LibraryImportGenerator.)
SYSLIB1070 Utilizzo di JSImportAttribute non valido.
SYSLIB1071 Utilizzo di JSExportAttribute non valido.
SYSLIB1072 Il tipo specificato non è supportato dall'interoperabilità JavaScript generata automaticamente.
SYSLIB1073 La configurazione specificata non è supportata dall'interoperabilità JavaScript generata automaticamente.
SYSLIB1074 JSImportAttribute richiede codice non sicuro.
SYSLIB1075 JSImportAttribute richiede codice non sicuro.
SYSLIB1076 (Riservato a System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1077 (Riservato a System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1078 (Riservato a System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1079 (Riservato a System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1080 (Riservato a System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1081 (Riservato a System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1082 (Riservato a System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1083 (Riservato a System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1084 (Riservato a System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1085 (Riservato a System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1086 (Riservato a System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1087 (Riservato a System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1088 (Riservato a System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1089 (Riservato a System.Runtime.InteropServices.JavaScript.JSImportGenerator.)
SYSLIB1090 Utilizzo di GeneratedComInterfaceAttribute non valido.
SYSLIB1091 Il metodo viene dichiarato in una dichiarazione parziale diversa rispetto all'attributo GeneratedComInterface.
SYSLIB1092 L'utilizzo dell'attributo LibraryImport o GeneratedComInterface non segue la raccomandazione.
SYSLIB1093 L'analisi della generazione dell'interfaccia COM non è riuscita.
SYSLIB1094 L'interfaccia COM di base non è riuscita a generare l'origine. Il codice non verrà generato per questa interfaccia.
SYSLIB1095 Utilizzo di GeneratedComClassAttribute non valido.
SYSLIB1096 Usare GeneratedComInterfaceAttribute anziché ComImportAttribute per generare codice di marshalling COM in fase di compilazione.
SYSLIB1097 Questo tipo implementa almeno un tipo con l'attributo GeneratedComInterfaceAttribute. Aggiungere GeneratedComClassAttribute per abilitare il passaggio di questo tipo a COM ed esporre le interfacce COM per i tipi con GeneratedComInterfaceAttribute da oggetti di questo tipo.
SYSLIB1098 .NET hosting COM con EnableComHosting supporta solo l'interoperabilità COM predefinita. Non supporta l'interoperabilità COM generata automaticamente con GeneratedComInterfaceAttribute.
SYSLIB1099 Le API di interoperabilità COM in System.Runtime.InteropServices.Marshal non supportano COM generato dall'origine e avranno esito negativo in fase di esecuzione.
SYSLIB1100 Generatore di associazioni di configurazione: il tipo non è supportato.
SYSLIB1101 Generatore di associazioni di configurazione: la proprietà sul tipo non è supportata.
SYSLIB1102 Generatore di associazioni di configurazione: la versione del linguaggio del progetto deve essere almeno C# 12.
SYSLIB1103 Generatore di associazioni di configurazione: i tipi valore non sono input validi per i metodi 'Bind' di configurazione.
SYSLIB1104 Generatore di associazioni di configurazione: il generatore non può determinare il tipo di configurazione finale.
SYSLIB1105 (Riservato a Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1106 (Riservato a Microsoft.Extensions.Configuration.Binder.SourceGeneration.)(Riservato a Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1107 (Riservato a Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1108 (Riservato a Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1109 (Riservato a Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1110 (Riservato a Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1111 (Riservato a Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1112 (Riservato a Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1113 (Riservato a Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1114 (Riservato a Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1115 (Riservato a Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1116 (Riservato a Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1117 (Riservato a Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1118 (Riservato a Microsoft.Extensions.Configuration.Binder.SourceGeneration.)
SYSLIB1201 Non è possibile usare ValidateObjectMembersAttribute o ValidateEnumeratedItemsAttribute in campi o proprietà con tipi generici aperti.
SYSLIB1202 Un tipo membro non dispone di campi o proprietà da convalidare.
SYSLIB1203 Un tipo non dispone di campi o proprietà da convalidare.
SYSLIB1204 Un tipo annotato con OptionsValidatorAttribute non implementa l'interfaccia necessaria.
SYSLIB1205 Un tipo include già un'implementazione del metodo 'Validare'.
SYSLIB1206 Non è possibile convalidare campi o proprietà privati.
SYSLIB1207 Il tipo membro non è enumerabile.
SYSLIB1208 I validator usati per la convalida transitiva o enumerabile devono avere un costruttore senza parametri.
SYSLIB1209 OptionsValidatorAttribute non può essere applicato a una classe statica.
SYSLIB1210 Tipo di validator Null specificato per gli attributi ValidateObjectMembersAttribute o ValidateEnumeratedItemsAttribute.
SYSLIB1211 Riferimenti circolari non supportati nei tipi di modello.
SYSLIB1212 Convalida transitiva potenzialmente mancante nel membro.
SYSLIB1213 Validazione enumerabile potenzialmente mancante per il membro.
SYSLIB1214 Non è possibile convalidare costanti, campi statici o proprietà.
SYSLIB1215 L'attributo di convalida nel membro non è accessibile dal tipo di validatore.
SYSLIB1216 Versione del linguaggio C# non supportata dal generatore di origine di convalida delle opzioni.
SYSLIB1217 L'attributo di convalida è applicabile solo alle proprietà di tipo stringa, matrice o ICollection. Non può essere usato con altri tipi.
SYSLIB1218 (Riservato a Microsoft.Extensions.Options.SourceGeneration.)
SYSLIB1219 (Riservato a Microsoft.Extensions.Options.SourceGeneration.)
SYSLIB1220 JsonSourceGenerator ha rilevato un [JsonConverterAttribute] con un argomento di tipo non valido.
SYSLIB1221 JsonSourceGenerator non supporta questa versione del linguaggio C#.
SYSLIB1222 Il costruttore annotato con JsonConstructorAttribute non è accessibile.
SYSLIB1223 Il costruttore annotato con JsonConstructorAttribute non è accessibile.
SYSLIB1224 I tipi annotati con JsonSerializableAttribute devono essere classi che derivano da JsonSerializerContext.
SYSLIB1225 (Riservato a System.Text.Json.SourceGeneration.)
SYSLIB1226 (Riservato a System.Text.Json.SourceGeneration.)
SYSLIB1227 (Riservato a System.Text.Json.SourceGeneration.)
SYSLIB1228 (Riservato a System.Text.Json.SourceGeneration.)
SYSLIB1229 (Riservato a System.Text.Json.SourceGeneration.)
SYSLIB1230 Derivare da un'interfaccia dotata di attributi GeneratedComInterface definita in un altro assembly non è supportato.

Sopprimere avvisi

È consigliabile usare una delle soluzioni alternative quando possibile. Tuttavia, se non è possibile modificare il codice, è possibile eliminare l'avviso tramite una #pragma direttiva o un'impostazione <NoWarn> di progetto. Se la diagnostica del SYSLIB1XXX generatore di origine non viene visualizzata come errore, è possibile eliminare l'avviso nel codice o nel file di progetto.

Per eliminare gli avvisi nel codice (sostituire l'ID di diagnostica in base alle esigenze):

// Disable the warning.
#pragma warning disable SYSLIB1006

// Code that generates compiler diagnostic.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB1006

Per eliminare gli avvisi in un file di progetto (sostituire gli ID di diagnostica in base alle esigenze):

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   <TargetFramework>net10.0</TargetFramework>
   <!-- NoWarn below suppresses SYSLIB1002 project-wide -->
   <NoWarn>$(NoWarn);SYSLIB1002</NoWarn>
   <!-- To suppress multiple warnings, you can use multiple NoWarn elements -->
   <NoWarn>$(NoWarn);SYSLIB1002</NoWarn>
   <NoWarn>$(NoWarn);SYSLIB1006</NoWarn>
   <!-- Alternatively, you can suppress multiple warnings by using a semicolon-delimited list -->
   <NoWarn>$(NoWarn);SYSLIB1002;SYSLIB1006;SYSLIB1007</NoWarn>
  </PropertyGroup>
</Project>