Compilerwarnung (Stufe 1) CS1690
Der Zugriff auf einen Member auf „member“ kann eine Laufzeitausnahme verursachen, da er ein Feld einer Marshal-by-Reference-Klasse ist.
Diese Warnung wird angezeigt, wenn Sie versuchen, eine Methode, eine Eigenschaft oder einen Indexer für einen Member einer Klasse aufzurufen, die von MarshalByRefObject abgeleitet wird, und es sich um einen Werttypmember handelt. Objekte, die von MarshalByRefObject
erben, werden in der Regel als Verweis über eine Anwendungsdomäne gemarshallt. Beim Versuch, mit Code direkt auf den Werttypmember eines solchen Objekts über eine Anwendungsdomäne zuzugreifen, wird eine Laufzeit-InvalidOperationException ausgelöst. Um diese Warnung zu vermeiden, kopieren Sie den Member in eine lokale Variable, und rufen Sie die Methode für diese Variable auf.
Im folgenden Beispiel wird der Fehler CS1690 generiert:
// CS1690.cs
using System;
class WarningCS1690 : MarshalByRefObject
{
int i = 5;
public static void Main()
{
AppDomain domain = AppDomain.CreateDomain("MyDomain");
Type t = typeof(WarningCS1690);
WarningCS1690 e = (WarningCS1690)domain.CreateInstanceAndUnwrap(t.Assembly.FullName,t.FullName);
e.i.ToString(); // CS1690
// OK
int i = e.i;
i.ToString();
e.i = i;
}
}
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für