Compilerwarnung (Stufe 1) CS1690Compiler 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.Accessing a member on 'member' may cause a runtime exception because it is a field of a marshal-by-reference class

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.This warning occurs when you try to call a method, property, or indexer on a member of a class that derives from MarshalByRefObject, and the member is a value type. Objekte, die von MarshalByRefObject erben, werden in der Regel als Verweis über eine Anwendungsdomäne gemarshallt.Objects that inherit from MarshalByRefObject are typically intended to be marshaled by reference across an application domain. Beim Versuch, mit Code direkt auf den Werttypmember eines solchen Objekts über eine Anwendungsdomäne zuzugreifen, wird eine Laufzeitausnahme ausgelöst.If any code ever attempts to directly access the value-type member of such an object across an application domain, a runtime exception will occur. Um diese Warnung zu vermeiden, kopieren Sie den Member in eine lokale Variable, und rufen Sie die Methode für diese Variable auf.To resolve the warning, first copy the member into a local variable and call the method on that variable.

Im folgenden Beispiel wird der Fehler CS1690 generiert:The following sample generates CS1690:

// 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;  
   }  
}