C# 需要用另一个构造它的类重写namspace中的方法

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

我试图重写社区服务器SDK中名为“InlineAgsContainerTagEditor”的控件上的方法

当我找到此控件的源代码时,它位于另一个名为“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
    }
}

你的问题似乎出在你的标签上

您正在使用剥离的标记创建一个新字符串,但随后将旧字符串发送到基中

旧字符串未被更改,因此您的重写没有任何作用

试一试


我注意到您更改了代码以修复我在回答中提到的问题,但您给了我的回答接受状态。。。它是否解决了您的问题,或者您仍然有一个与上述固定代码?
public override string FormatTags(string[] tagList)
{
    // strip special tags
    string[] newTagList = stripTags(tagList);
    return base.FormatTags(newTagList);
}