Поделиться через


Предупреждение компилятора (уровень 1) CS1690

Обновлен: Ноябрь 2007

Сообщение об ошибке

Доступ к члену в "член" может вызвать исключение времени исполнения, поскольку он является полем класса, маршалируемого по ссылке
Accessing a member on 'member' may cause a runtime exception because it is a field of a marshal-by-reference class

Данное предупреждение возникает, когда предпринимается попытка вызвать метод, свойство или индексатор для члена класса, который наследует от класса MarshalByRefObject, и данный член является типом значения. Чтобы устранить это предупреждение, скопируйте член в локальную переменную и вызовите метод для этой переменной.

Следующий пример приводит к созданию предупреждения 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;
   }
}