2015-01-04 1 views
2

은 StringTemplate 엔진에 대해 조금 학습 및 Visual Studio에서 C# .NET을 사용하여 StringTemplate의 사용을 만들 수있는 HTML 페이지를 제작에 관심 해요 2013StringTemplate : 콘텐츠 [익명]이 문자열이 정의되지 않은 능력치

꽤 광범위하게 검색했지만 라이브러리를 사용할 수있는 간단한 코드를 함께 넣을 수는 있지만 런타임 오류가 발생합니다. 내가 올바른 장소와 올바른 파일 경로에 구분 기호를 추가했지만 여전히 오류가 발생하는 것 생각했다

내용은 [익명] 특성 문자열이

을 정의되지 않은, 내가 프로그래밍에 여전히 새로운 해요, 내 코드에서 명백한 것을 놓쳤는가?

나는

감사합니다 사전에 등 도서관에 대한 다양한 정보, 비디오 예제를 찾기 위해 애 쓰고 있었어요.

아래 코드를 추가했습니다.

static void Main(string[] args) 
    { 

     var System = new Program(); 
     System.HelloWorld(); 
     Console.ReadLine(); 

    } 



public string HelloWorld() 
    { 
     Template template; 

     var path = @"C:\TemplateTester\index.st"; 
     var file = new FileInfo(path); 
     using (StreamReader reader = file.OpenText()) 
      template = new Template(reader.ReadToEnd(), '$', '$'); // custom delimeter (defaults are "<" and ">") 

     template.Add("title", "Hello World!"); 
     template.Add("array", new string[] { "Record A", "Record B", "Record C" }); 
     template.Add("object", new { PropertyA = "A", PropertyB = "B" }); 

     return template.Render(); 
    } 

내 ST 내가 인해 그러나 내 현재의 명성에 내 FilePath를의 이미지를 추가 할 수 없습니다

<html> 
    <body> 
    <h1>Hello World</h1> 
    $! file: C:\TemplateTester\index.st !$ 
    String: 
    $string$ 

    Array: 
    $array:{it|$it$ ($i$)};separator=", "$ 

    Object: 
    Property A = $object.PropertyA$ 
    Property B = $object.PropertyB$ 
    </body> 
    </html> 

파일의 ST 파일은 함께 제안 경로로 응용 프로그램 폴더에 앉아있다 비주얼 스튜디오 파일. 외부 프로그램 폴더 (bin, obj, properties 등 포함)와 Package 폴더 (Antlr 참조 포함).

답변

1

은 템플릿 파일을 표현 $string$을 포함,하지만 당신은 당신이 title, arrayobject에서했던 것처럼 template.Add 방법을 사용하여 string 속성 값을 정의하지 않았다.

+0

감사합니다. 오류를 없애고 대신 HTML 페이지를로드하지 않고 빈 줄을 표시하는 변경 사항을 확인하십시오. – TheSmith

+0

내 질문에 대답하기 만하면됩니다. "System.HelloWorld"는 Console.WriteLine 매개 변수에 있습니다. – TheSmith

+0

제공되지 않은 특성을 Null 값으로 받아들이는 옵션을 사용하는 것이 좋을 것입니다. 즉, 제공되지 않은 경우 null/nostring/emptystring을 갖습니다. 옵션이 있습니까? – Hartmut

관련 문제