我正在尝试覆盖社区服务器 SDK 中名为“InlineTagsContainerTagEditor”的控件上的方法。
当我找到此控件的源时,它位于另一个名为“TaggableContentTagEditableList”的类的文件中。
以下是我认为相关部分的内容:
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;
}
}
}
我只是想创建一个删除某些“标签”的 TaggableContentEditableList 版本。我试图在下面覆盖的方法 - 但我很迷茫。我是否必须重写 TaggableContentTagEditableList 的构造函数才能让构造函数使用我的重写方法查找正确的类型?
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
}
}