这里我们以一个完整的范例来讲解外部程序集在标签解析引擎中的用法。
(关于程序方面的知识,超出了本文所讲授的范围。下面的内容以C#讲授,如不能理解代码可参考《C#入门经典》一书)
开启Visual Studio新建一个项目,模板选择类库,项目名和解决方案取名为MyFunction选择好保存的位置后点击确定按钮。此主题如下:
添加引用动易系统中的程序集:PowerEasy.TemplateEngine.dll
在编辑窗口,我们在默认的Class1类中增加三个方法,如下:
namespace MyFunction { public class Class1 { public static string SayHello() { return "Hello PowerEasy"; } public static double GetMultiply(double lhs, double rhs) { return lhs * rhs; } public static decimal ShowDecimalRound(decimal Argument, int Digits) { return decimal.Round(Argument, Digits); } } } 注意下面一步,把方法使用特性标示一下,表示是内置函数。如下:
namespace MyFunction { using PowerEasy.TemplateEngine.XpowerEngine.Parser; [ExtensionObject] public class Class1 { public static string SayHello() { return "Hello PowerEasy"; } public static double GetMultiply(double lhs, double rhs) { return lhs * rhs; } public static decimal ShowDecimalRound(decimal Argument, int Digits) { return decimal.Round(Argument, Digits); } } }
第一个方法,用于显示一条信息 第二个方法,用于返回两个数的乘积 第三个方法,用于精确保留小数位
接下来我们,选择生成菜单的生成MyFunction,生成此程序集,此主题如下:
这样便生成了一个MyFunction.dll的文件,我们将其复制到站点根目录下的bin目录中。
至后台,系统设置→模板标签管理→标签管理,增加一个新的标签,类型选择简单XSLT解析,可不选择数据源,此主题如下:
在标签模板头部引入我们定义的命名空间,并且按照正确的方法签名调用即可。
<?xml version="1.0" encoding="utf-8"?> <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pe="labelproc" xmlns:MyFun="Class1" exclude-result-prefixes="pe MyFun"> <xsl:output method="html" /> <xsl:template match="/"> <xsl:value-of select="MyFun:SayHello()"/> <xsl:value-of select="MyFun:GetMultiply(3, 3)"/> <xsl:value-of select="MyFun:ShowDecimalRound(3.333, 2)"/> </xsl:template> </xsl:transform>
这里是Class1,跟你刚刚定义的类名要一样。 调用方法为 命名空间名称 冒号 方法签名
至此我们完成了标签解析引擎对外部程序集的使用,对于高级用户,或者不满足与现在有的XSLT,XPATH,内置函数库,所提供的功能用户,通过这种外部 程序集的方式,能够最大化的满足其心仪的功能和想法。让我们尽情的感受来自PowerEasy Xpower引擎的自由与强大吧! |