簡體   English   中英

如何在StringTemplate中的對象上調用C#擴展方法?

[英]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的實現,該實現支持訪問對象的特定屬性。 如果您的實現擴展了ObjectModelAdaptorMapModelAdaptor ,那么您可以退回以return base.GetProperty(...)來獲取任何您自己無法處理的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM