2016-06-29 10 views
0

Beim Aktualisieren von Kentico in 9.0 wurde der folgende Fehler angezeigt.Für das nicht statische Feld, die Methode oder die Eigenschaft 'TableManager.UpdateSystemFields' ist eine Objektreferenz erforderlich.

Error1:

Für UpdateSystemFields ist Eine Objektreferenz für den nicht-statisches Feld erforderlich ist, eine Methode oder eine Eigenschaft 'TableManager.UpdateSystemFields'

Error2:

Wie in Kentico API-Referenz für 9.0 'UpdateTableByDefinition' Funktion wird angezeigt entfernt.

bool old = TableManager.UpdateSystemFields;// Getting error1 
TableManager.UpdateSystemFields = true;// Getting error1 
string schema = FormInfo.GetXmlDefinition(); 
TableManager tm = new TableManager(null); 
tm.UpdateTableByDefinition(dci.ClassTableName, schema);// Getting error2 
TableManager.UpdateSystemFields = old;// Getting error1 

Antwort

1

UpdateSystemFields ist kein statisches Element, so dass Sie nicht durch die Art direkt zugreifen können.

Dies ist nicht gültig:

TableManager.UpdateSystemFields 

Dieses gilt:

TableManager tm = new TableManager("connectionString"); 
bool old = tm.UpdateSystemFields; 
0

ich Ihre "error2" nicht verstehen. Klingt so, als wäre diese Methode entzogen und es sollte ein Ersatz dafür geben.

Der Grund für Fehler 1 ist, dass UpdateSystemFields ist ein nicht-statische Instanz Mitglied von TableManager, so dass anstelle von

bool old = TableManager.UpdateSystemFields; 
// ... 
TableManager.UpdateSystemFields = old; 

Sie die Instanz verwenden müssen tm Sie erstellt:

TableManager tm = new TableManager(null); 
bool old = tm.UpdateSystemFields; 
// ... 
tm.UpdateSystemFields = old; 
Verwandte Themen