2012-08-29 1 views
1

NuGet의 v2 버전의 면도기 엔진이 있습니다. 면도기 뷰를 API를 사용하여 즉석에서 편집하고 싶습니다. 그러나, 완전히 문서화되지 않은 것 같습니다.System.Web.Razor의 설명서는 어디에 있습니까? (v2)

이 유형/멤버는 .NET Framework 인프라를 지원하며 는 사용자 코드에서 직접 사용할 수 없습니다 :

매 종류와 회원은 다음과 같은 문서가 있습니다.

이것은 모두 공개 유형이며 공개 회원이므로 매우 짜증나게합니다.
이 라이브러리를 사용하여 면도기보기를 컴파일하는 제 3 자 재료를 보았으므로이 작업도 수행 가능해야한다는 것을 알고 있습니다.

그래서이 API를 어디서나 사용하는 방법에 대한 실제 사용 가능한 문서가 있습니까?

+1

1 : 여기

는 코드입니다. 필자는 항상 책임있는 프레임 워크 개발자가 배포 전에 필수 * 유용한 API 문서를 중요한 요구 사항으로 간주하기를 희망했습니다. "* herp derp **로 직접 오염되지 않도록 ** ** herp derp *"로 오염 된 MSDN 페이지는 단지 모욕적 인 페이지입니다. – Dan

+0

@Bracketworks 네, 전적으로 동의합니다 !!! – Venemo

답변

0

저는이 질문을 대답없이 거의 1 년 동안 열어 두었습니다. 그래서 나는 결국 내가 생각한 것을 올리기로 결정했습니다.

면도기가 아직 문서화되지 않은 것은 분명합니다. http://msdn.microsoft.com/en-us/library/system.web.razor%28v=vs.111%29.aspx을 참조하십시오. 문서화되지 않은 상태로 남을 가능성이 매우 높습니다.

그러나 사용 방법은 ASP.NET MVC에서 Razor보기 엔진에서 사용하는 코드를 보면 쉽게 확인할 수 있습니다. 그런 다음이를 기반으로 코드를 작성할 수 있습니다.

Razor도 ASP.NET BuildManager 인프라와 연결되어있어이를 통해 쉽게 Razor보기의 인스턴스를 얻을 수 있습니다. 그런 다음 ExecutePageHierarchy 메서드를 호출하려고합니다. 이것은 내가 본 것 중 가장 무책임한 결정 중 하나가 될 가지고있다

public void ProcessRequestCore(HttpContextBase context) 
{ 
    try 
    { 
     // Create Razor page instance 
     var instance = BuildManager.CreateInstanceFromVirtualPath(_razorFilePath, typeof(WebPage)) as WebPage; 

     if (instance == null) 
      throw new NullReferenceException("BuildManager.CreateInstanceFromVirtualPath returned null."); 

     // Set up things 
     instance.VirtualPath = _virtualPath; 

     // Render the Razor page 
     instance.ExecutePageHierarchy(new WebPageContext(context, instance, _model), context.Response.Output); 
    } 
    catch (Exception exc) 
    { 
     Logger.WriteException(exc); 
     context.Response.StatusCode = 500; 
    } 
} 
관련 문제