2009-03-19 18 views
0

コミュニティサーバーSDKのコントロールのメソッドを 'InlineTagsContainerTagEditor'という名前でオーバーライドしようとしています。メンバを構築する別のクラスでnamspaceにあるメソッドをオーバーライドする必要があります。

このコントロールのソースは「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 
    } 
} 
+0

をお試しください上記の固定コード? –

答えて

1

あなたの問題は、あなたのオーバーライドFormatTags

あなたの剥奪タグを持つ新しい文字列を作成しているが、その後、あなたがベースに古い文字列を送信であると思われます。

古い文字列は変更されていないため、上書きは何もしません。

私はそれはあなたの問題を解決したのか、あなたはまだと一つにhaveingている...あなたは私が私の答えで述べた問題を修正するようにコードを変更しましたが、あなたが私の答えに受け入れられた状態を与えた注意

public override string FormatTags(string[] tagList) 
{ 
    // strip special tags 
    string[] newTagList = stripTags(tagList); 
    return base.FormatTags(newTagList); 
} 
関連する問題