2013-10-29 49 views
0

我有一個類(TemplateCompiler),它加載了.html文件,並使用umbraco節點的屬性和導出來替換某些值以供外部使用。Umbraco從類內部獲取節點屬性

using System.Text; 
using System.IO; 

/// <summary> 
/// Template builder gathers the umbraco nodes, gets the appropriate markup and populates it. 
/// </summary> 
public class TemplateCompiler 
{ 
    public static string GetCode(dynamic performance) 
    { 
     //loadTemplate is a function defined elsewhere 
     var template = loadTemplate("Main.html"); 

     template.Replace("###BODY###", performance.bodyContent); 
    } 
} 

現在我還能在這樣的方式(表現型umbraco.presentation.nodeFactory.Node)的訪問性能對象的一把umbraco屬性。

我似乎記得,該類需要繼承umbraco.MacroEngines.DynamicNodeContext以便能夠以這種方式訪問​​屬性。

是否有任何替代品或我失蹤的東西?

回答

1

你的課並不需要繼承任何東西來使其工作。但是,如果您將一個Node對象傳遞給動態參數,它將不會像您期望的那樣運行。要達到此目的,您需要傳遞一個DynamicNode對象。

更好的是,只需將Node對象作爲參數Node即可。至少通過這種方式,您將確切知道您在編譯時訪問的屬性。