Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het openen van een lid op lid kan een runtime-uitzondering veroorzaken omdat het een veld van een marshal-by-reference-klasse is
Deze waarschuwing treedt op wanneer u probeert een methode, eigenschap of indexeerfunctie aan te roepen voor een lid van een klasse die is afgeleid van MarshalByRefObjecten het lid een waardetype is. Objecten waaruit wordt overgenomen MarshalByRefObject , zijn doorgaans bedoeld om te worden ge marshalld op basis van verwijzingen in een toepassingsdomein. Als een code ooit probeert rechtstreeks toegang te krijgen tot het waardetypelid van een dergelijk object in een toepassingsdomein, vindt er een runtime InvalidOperationException plaats. Als u de waarschuwing wilt oplossen, kopieert u eerst het lid naar een lokale variabele en roept u de methode op die variabele aan.
In het volgende voorbeeld wordt CS1690 gegenereerd:
// 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;
}
}