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!

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top