这是关于Liquid的安全性问题,使用DotLiquid库。
假设我的视图模型类似于以下(伪代码):
class MyViewModel
public string MyField
public string MyMethod()
...并将MyViewModel对象传递给Liquid模板,其中MyField设置为可从模板中访问(因此模板可以读取其内容)。
我的假设是答案对所有问题都不是,但我想确定。
谢谢。
答案 0 :(得分:4)
MyField
无法分配。实际上,它根本无法访问 - 只有公共实例方法和属性可以在DotLiquid中访问。Drop
类,则可以访问所有公共实例方法和属性。Drop
继承,那么您可能正在使用Template.RegisterSafeType(Type type, string[] allowedMembers)
方法,这需要您告诉DotLiquid可以访问哪些属性和方法(使用allowedMembers
参数)。