다른 클래스와 NamSpace에있는 메소드를 재정의해야합니다.
-
21-08-2019 - |
문제
커뮤니티 서버 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
}
}
해결책
당신의 문제는 당신의 재정의 Formattags에있는 것 같습니다
스트리핑 된 태그로 새 문자열을 만들고 있지만 이전 문자열을베이스에 보냅니다.
이전 문자열이 변경되지 않았으므로 재정의가 아무것도하지 않습니다.
노력하다
public override string FormatTags(string[] tagList)
{
// strip special tags
string[] newTagList = stripTags(tagList);
return base.FormatTags(newTagList);
}
제휴하지 않습니다 StackOverflow