[英]How can I call a C# extension method on an object in StringTemplate?
我正在嘗試基於集合中項目的數量在StringTemplate中執行if ... then ... 我想做這個:
$ if(長度(myCollection)> 1)$
但是,這被認為是邏輯,因此被禁止(StringTemplate無法識別>運算符)。
但是,StringTemplate會反映出擴展方法嗎?
我的擴展方法如下:
public static bool IsMoreThanOne(this ICollection list)
{
return list.Count > 1;
}
如果我的模板如下所示:
$if(myCollection.MoreThanOne)$
如果它是“一階”方法(在“ myCollection”對象上表示),則將找到該方法。 但這不是-它是一種擴展方法,因此似乎無效。
對於此特定邏輯,您可以使用以下表達式,該表達式基本上表示:“如果我們跳過第一個項目,則剩余集合中是否包含任何項目?”:
$if(rest(myCollection))$
通常,您可以創建IModelAdaptor
的實現,該實現支持訪問對象的特定屬性。 如果您的實現擴展了ObjectModelAdaptor
或MapModelAdaptor
,那么您可以退回以return base.GetProperty(...)
來獲取任何您自己無法處理的屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.