Error del compilador CS0570
Actualización: noviembre 2007
Mensaje de error
El lenguaje no admite la propiedad, el indizador o el evento 'nombre'; intente llamar directamente al método de descriptor de acceso 'nombre'
Property, indexer, or event 'name' is not supported by the language; try directly calling accessor method 'name!'
Este error se produce al utilizar metadatos importados que se generaron con otro compilador. El código creado intenta utilizar un miembro de clase que el compilador no es capaz de procesar.
Ejemplo
El programa C++ siguiente utiliza un atributo, RequiredAttributeAttribute, que otros lenguajes no pueden utilizar.
// CPP0570.cpp
// compile with: /clr /LD
using namespace System;
using namespace System::Runtime::CompilerServices;
namespace CS0570_Server {
[RequiredAttributeAttribute(Int32::typeid)]
public ref struct Scenario1 {
int intVar;
};
public ref struct CS0570Class {
Scenario1 ^ sc1_field;
property virtual Scenario1 ^ sc1_prop {
Scenario1 ^ get() { return sc1_field; }
}
Scenario1 ^ sc1_method() { return sc1_field; }
};
};
El código siguiente genera el error CS0570.
// CS0570.cs
// compile with: /reference:CPP0570.dll
using System;
using CS0570_Server;
public class C {
public static int Main() {
CS0570Class r = new CS0570Class();
r.sc1_field = null; // CS0570
object o = r.sc1_prop; // CS0570
r.sc1_method(); // CS0570
}
}