تحتاج إلى تجاوز الأسلوب الذي في مساحة الاسم مع فئة أخرى الذي يبني عليه
-
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