Wie behandle ich das benutzerdefinierte WebPart-Immobilien-Typ-Update während der Neuvereinung?
-
16-10-2019 - |
Frage
Ich habe ein benutzerdefiniertes Webpart, das mit einer Eigenschaft wie definiert wurde
[Personalizable(PersonalizationScope.Shared), WebBrowsable(true), WebDisplayName("Chart Type"), Category("Chart - Required")]
[InitializationParameterName("ySeriesType")]
public DataSeries1 YSeriesType { get; set; }
das wurde eingesetzt. Ich habe es dann geändert in:
[Personalizable(PersonalizationScope.Shared), WebBrowsable(true), WebDisplayName("Chart Type"), Category("Chart - Required")]
[InitializationParameterName("ySeriesType")]
public YSeriesType YSeriesType { get; set; }
Diese Änderung führt nun zu einem Fehler, der darauf hindeutet, dass DataSeries1 nicht gefunden wurde. Wie kann ich das Upgrade für dieses Szenario bewältigen? FWIW, Folgendes IVersioningPersonalizable
schien nicht zu funktionieren:
void IVersioningPersonalizable.Load(IDictionary unknownProperties)
{
if (unknownProperties == null)
return;
_dirty = true;
foreach (DictionaryEntry entry in unknownProperties)
{
switch (Convert.ToString(entry.Key))
{
case "YSeriesType":
this.YSeriesType = (YSeriesType)Enum.Parse(typeof(YSeriesType), Convert.ToString(entry.Value));
break;
}
}
}
protected override void OnInit(EventArgs e)
{
if (_dirty && null != base.WebPartManager)
{
SetPersonalizationDirty();
_dirty = false;
}
}
Vielen Dank!
Lösung
Ihr iversioningPersonalisierbarer Code sieht richtig aus, aber ich denke, SharePoint bestimmt unbekannte Eigenschaften nach ihrem Namen, und wenn Eigentum nicht umbenannt wurde, wird er nicht unbekannt ...
Könnten Sie also bitte Yseriestype -Eigenschaft umbenennen und versuchen, das Upgrade erneut durchzuführen?
Andere Tipps
Die Fehlermeldung bezieht sich auf die Klassendatenerien1, die vom vorhandenen Webpart verwendet wird. Ich vermute also, dass Sie diese Klasse gelöscht (oder umbenannt) haben.
Nachdem Sie den Code ausgeführt haben, der die Eigenschaftswerte aktualisiert, können Sie Ihre DataSeries1 -Klasse sicher entfernen.