无法在iText7的AbstractElement上创建扩展方法

时间:2018-08-02 22:00:27

标签: c# itext7

我想创建一个扩展方法,该方法将同时应用于Paragraph对象和Text对象。这两种类型都有一个共同的祖先AbstractElement。

我想做的是这样的:

private static AbstractElement ApplyHeaderStyle(this AbstractElement element)
    {
        return element.AddStyle(new Style().SetFont(FontFactory.CreateAvenir85Heavy()).SetFontSize(7));
    }

这样我就可以在我的代码中这样调用它:

new Text("This is some text that I would like as a header").ApplyHeaderStyle();

new Paragraph().Add("This is also text I want in that style").AddHeaderStyle();

我该怎么做?我应该避免尝试将其作为可链接的扩展方法吗?

1 个答案:

答案 0 :(得分:2)

我通过几次尝试和反复摸索发现了问题:

private static T HeaderStyle<T>(this T element) where T : AbstractElement<T>
{
    return element.AddStyle(CreateHeaderStyle());
}