Compiler Warning (level 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 Laufzeitausnahme 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 CS1690 generiert:

// CS1690.cs  
using System;  

class WarningCS1690: MarshalByRefObject  
{  
   int i = 5;  

   public static void Main()   
   {  
     WarningCS1690 e = new WarningCS1690();  
     e.i.ToString();   // CS1690  

     // OK  
     int i = e.i;  
     i.ToString();  
     e.i = i;  
   }  
}