需要覆盖的方法是在一个命名空间与其他类构造它
-
21-08-2019 - |
题
我想重写名为“InlineTagsContainerTagEditor”在社区服务器SDK控制的方法。
当我找到这个控制的信号源,它与所谓的“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
}
}
解决方案
您的问题似乎是在你的覆盖FormatTags
您正在创建与剥离标签一个新的字符串,但随后你的旧字符串送入基地。
在旧字符串还未改变,从而覆盖中没有做任何事情。
尝试
public override string FormatTags(string[] tagList)
{
// strip special tags
string[] newTagList = stripTags(tagList);
return base.FormatTags(newTagList);
}
不隶属于 StackOverflow