Müssen Verfahren außer Kraft zu setzen, die mit einer anderen Klasse in einem Namespace, die sie konstruiert
-
21-08-2019 - |
Frage
Ich versuche, eine Methode für eine Kontrolle in dem Community Server SDK 'InlineTagsContainerTagEditor' genannt außer Kraft zu setzen.
Wenn ich die Quelle für diese Steuerung zu finden, ist es in einer Datei mit einer anderen Klasse namens ‚TaggableContentTagEditableList‘.
Hier ist, was ich denke, dass die relevanten Teile sind:
namespace CommunityServer.Controls
{
public class TaggableContentTagEditableList : WrappedContentBase, ICallbackEventHandler
{
protected virtual InlineTagsContainerTagEditor GetInlineTagEditor(ITagsContainer container)
{
return new InlineTagsContainerTagEditor(container);
}
}
public class InlineTagsContainerTagEditor : TWC.InlineEditor
{
ITagsContainer _container;
public InlineTagsContainerTagEditor(ITagsContainer container)
: base()
{
_container = container;
}
}
}
Ich versuche nur eine Version des TaggableContentEditableList zu erstellen, die bestimmte ‚Tags‘ entfernt. Das Verfahren für die ich habe versucht, unten außer Kraft zu setzen - aber ich habe sehr verloren. Muß ich den Konstruktor für TaggableContentTagEditableList um außer Kraft zu setzen den Konstruktor Look für den richtigen Typen mit meiner überschriebene Methode zu haben?
public partial class TaggableContentEditableListExclude : TaggableContentTagEditableList
{
protected override InlineTagsContainerTagEditor GetInlineTagEditor(ITagsContainer container)
{
return new TagExcludeOption(container);
}
}
public partial class TagExcludeOption : InlineTagsContainerTagEditor
{
ITagsContainer _container;
public TagExcludeOption(ITagsContainer container) : base(container)
{
_container = container;
}
public override string FormatTags(string[] tagList)
{
// strip special tags
string[] newTagList = stripTags(tagList);
return base.FormatTags(newTagList);
}
private string[] stripTags(string[] tagList)
{
//doing something here
}
}
Lösung
Ihr Problem scheint in der Überschreibung FormatTags
zu seinSie sind eine neue Zeichenfolge mit gestrippt Tags zu schaffen, sondern dann die alte Zeichenfolge in die Basis, die Sie senden.
Die alte Zeichenfolge wurde nicht verändert, so die Überschreibung tut nichts.
Versuchen
public override string FormatTags(string[] tagList)
{
// strip special tags
string[] newTagList = stripTags(tagList);
return base.FormatTags(newTagList);
}