C# 需要用另一个构造它的类重写namspace中的方法
我试图重写社区服务器SDK中名为“InlineAgsContainerTagEditor”的控件上的方法 当我找到此控件的源代码时,它位于另一个名为“TaggableContentTagEditableList”的类的文件中 以下是我认为相关的部分:C# 需要用另一个构造它的类重写namspace中的方法,c#,.net,oop,inheritance,community-server,C#,.net,Oop,Inheritance,Community Server,我试图重写社区服务器SDK中名为“InlineAgsContainerTagEditor”的控件上的方法 当我找到此控件的源代码时,它位于另一个名为“TaggableContentTagEditableList”的类的文件中 以下是我认为相关的部分: namespace CommunityServer.Controls { public class TaggableContentTagEditableList : WrappedContentBase, ICallbackEventHan
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
}
}
你的问题似乎出在你的标签上 您正在使用剥离的标记创建一个新字符串,但随后将旧字符串发送到基中 旧字符串未被更改,因此您的重写没有任何作用 试一试
我注意到您更改了代码以修复我在回答中提到的问题,但您给了我的回答接受状态。。。它是否解决了您的问题,或者您仍然有一个与上述固定代码?
public override string FormatTags(string[] tagList)
{
// strip special tags
string[] newTagList = stripTags(tagList);
return base.FormatTags(newTagList);
}