2011-12-09 6 views
4

나는이 간단한 예제를 웹 사이트에서 실행했고 Razor.Parse를 호출 할 때 아래 오류가 발생합니다. 이 문제를 어떻게 해결할 수 있습니까 ???RazorEngine Razor.Parse (...)가 ServiceStack 및 Markdown에 대한 예외를 throw합니까?

http://razorengine.codeplex.com/

string template = "Hello @Model.Name! Welcome to Razor!"; 
string result = Razor.Parse(template, new { Name = "World" }); 

오류 CS0234 : 형식 또는 네임 스페이스 이름 '마크 다운이'(? 당신이 어셈블리 참조가 누락)

+0

기본 네임 스페이스를 확인하십시오. – SLaks

답변

2

확실하지 네임 스페이스 'ServiceStack'에 존재하지 않는 이유 ' 'ServiceStack'오류가 당신이하는 경우에 당신이 RazorEngine.dll를 참조해야 ServiceStack의 마크 다운 엔진을 사용하고자하는 가정 http://razorengine.codeplex.com

에 연결했습니다 ServiceStack과 함께 제공되는razorengine.codeplex.com에있는 것이 아니라 여기에서 수행 된 것입니다.

+0

Markdown을 사용하고 싶지 않습니다. 나는 RazorEngine 패키지를 얻기 위해 NuGet을했고 그것은 dos를 참조하고 있습니다. 내 프로젝트의 다른 부분에서 다른 관련없는 JSON 물건에 ServiceStack을 사용하고 있습니다. 나는 왜 그것을로드하려고하는지 이해하지 못합니다. 나는 반사 문제라고 생각한다. 아마 app.config에 어셈블리 종속성 섹션을 추가하는 것이 수정 될 수 있다고 생각합니다. 하지만 여전히 다른 아이디어를 열어두고 있습니다. – kyleb

+0

JsonSerializer를 사용하려면 ServiceStack을 제거하고 ServiceStack.Text 대신 Nuget 만 설치해야합니다. – mythz

+0

당신은 내 질문을 이해하지 못합니다. 문제는 왜 RazorEngine이 서비스료 인상을 요구하는 것입니까? – kyleb

1

두 가지 중 하나가 발생했다고 생각합니다. 구성 파일에서 <razorEngine> 구성 섹션 내에 네임 스페이스가 추가되었거나 AddNamespace 메서드가 컴파일 된 템플릿에 네임 스페이스 가져 오기를 포함하도록 어딘가에서 호출되고 있습니다.

결과적으로 생성 된 클래스 파일에는 네임 스페이스가 추가되지만 참조는 누락됩니다. RazorEngine은로드 된 어셈블리를 AppDomain에 자동으로 참조합니다.

+0

이것은 나에게 엉덩이에 고통이었고, 마침내 내보기에서 사용하고있는 어셈블리가 .Parse()를 호출했을 때 앱 도메인에 있어야한다는 것을 알아 냈습니다. – Jeff

관련 문제