首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏大内老A

    ASP.NET MVC的Razor引擎:View编译原理

    我们可以通过BuildManager类型的静态方法GetCompiledType和GetCompiledAssembly(如下面的代码片断所示)根据View文件的虚拟路径得到对应的类型和程序集。 1: public sealed class BuildManager 2: { 3: //其他成员 4: public static Type GetCompiledType ("~/Views/Foo/Action1.cshtml") + "
    "); 6: Response.Write(BuildManager.GetCompiledType( "~/Views/Foo/Action2.cshtml") + "
    "); 7: Response.Write(BuildManager.GetCompiledType(" ~/Views/Bar/Action1.cshtml") + "
    "); 8: Response.Write(BuildManager.GetCompiledType("~

    2.1K70发布于 2018-01-15
  • 来自专栏大内老A

    ASP.NET MVC的Razor引擎:RazorView

    ViewContext viewContext, TextWriter writer, object instance); 11: 12: internal IBuildManager BuildManager 我们可以利用BuildManager根据View文件的虚拟路径得到编译后的类型。 从名称也可以看出来,BuildManagerCompiledView内部就是利用了BuildManager根据指定的View文件虚拟路径完成对WebViewPage对象激活。 它调用BuildManager的静态方法GetCompiledType根据指定的View文件虚拟路径得到编译后的WebPageView类型,然后将该类型交给ViewPageActivator激活一个具体的 page.ExecutePageHierarchy(pageContext, writer, startPage); 24: } 25: } 在用于呈现View的Render方法中,我们利用BuildManager

    1.8K70发布于 2018-01-15
  • 来自专栏Ken的杂谈

    【问题解决】Mono下部署ASP.NET应用提示:System.IO.FileNotFoundException

    System.Web.VirtualPath virtualPath) [0x00008] in <8fe6d5c66f4c4efb8f2d2af3ae3c8850>:0 at System.Web.Compilation.BuildManager.GenerateAssembly System.Boolean debug) [0x00202] in <8fe6d5c66f4c4efb8f2d2af3ae3c8850>:0 at System.Web.Compilation.BuildManager.BuildInner System.Boolean debug) [0x00106] in <8fe6d5c66f4c4efb8f2d2af3ae3c8850>:0 at System.Web.Compilation.BuildManager.Build System.Web.VirtualPath vp) [0x00058] in <8fe6d5c66f4c4efb8f2d2af3ae3c8850>:0 at System.Web.Compilation.BuildManager.GetCompiledType System.Web.VirtualPath virtualPath) [0x00037] in <8fe6d5c66f4c4efb8f2d2af3ae3c8850>:0 at System.Web.Compilation.BuildManager.GetCompiledType

    1.6K20发布于 2018-09-11
  • 来自专栏张善友的专栏

    Spacebuilder在Mono上运行修改备忘

    System.Web.Compilation.BuildManagerDirectoryBuilder.Build (Boolean single) [0x00000] in <filename unknown>:0 at System.Web.Compilation.BuildManager.BuildInner System.Web.VirtualPath vp, Boolean debug) [0x00000] in <filename unknown>:0 at System.Web.Compilation.BuildManager.Build (System.Web.VirtualPath vp) [0x00000] in <filename unknown>:0 at System.Web.Compilation.BuildManager.GetCompiledType (System.Web.VirtualPath virtualPath) [0x00000] in <filename unknown>:0 at System.Web.Compilation.BuildManager.GetCompiledType

    1.8K60发布于 2018-01-29
  • 来自专栏微光点亮星辰

    图图谈设计模式_建造者设计模式_java

    author huey * * */ public interface CompanyBuilder { public Ceo buildCeo(); public Manager buildManager System.out.println("need Ceo .."); return new Ceo(); } @Override public Manager buildManager public Company buildCompany() { Ceo buildCeo = companyBuilder.buildCeo(); Manager buildManager = companyBuilder.buildManager(); Programmer buildProgrammer = companyBuilder.buildProgrammer Company company = new Company(); company.setCeo(buildCeo); company.setManager(buildManager

    40041发布于 2020-04-10
  • Java中的private访问修饰符-Java快速入门教程

    让我们添加一个静态方法,这将是我们在 Employee 类外部使用此私有构造函数的唯一方法: public static Employee buildManager(String id, String new Employee(id, name, true); } 现在,我们可以通过简单地编写以下命令来获取 Employee 类的管理器实例: Employee manager = Employee.buildManager ("123MAN","Bob"); 当然,在幕后,buildManager 方法调用我们的私有构造函数。

    36600编辑于 2025-04-05
  • 来自专栏张善友的专栏

    ASP.NET MVC Preview生命周期分析

    ;         private IViewLocator _viewLocator;          internal IBuildManager BuildManager {              get {                 if (_buildManager == null) {                     _buildManager = new BuildManagerWrapper ();                 }                 return _buildManager;             }             set {                  _buildManager = value;             }         }          public IViewLocator ViewLocator {              (System.Web.Compilation.BuildManager BuildManager 类管理应用程序的程序集和页的编译过程),后面通过 as 转换结果来判断视图是 ViewPage 还是

    1.8K70发布于 2018-01-30
  • 来自专栏大内老A

    ASP.NET MVC是如何运行的(3): Controller的激活

    在DefualtControllerFactory初始化过程中,我们通过BuildManager加载所有应用的程序集,并加载所有实现了接口IController的类型并保存起来,而在CreateController 4: public DefaultControllerFactory() 5: { 6: foreach (Assembly assembly in BuildManager.GetReferencedAssemblies

    1.2K90发布于 2018-02-07
  • 来自专栏IT民工的代码世界

    ASP.NET MVC模块化开发——动态挂载外部项目

    接下来进行详细的分析与完成解决方案 一般动态加载dll的方法是使用Assembly.LoadFIle的方法来调用,但是会存在如下问题: 1.如果MVC项目中存在依赖注入,框架层面无法将外部dll的类放入IOC容器 通过 BuildManager.AddReferencedAssembly ; } } } BuildManager.AddReferencedAssembly

    70730编辑于 2023-07-19
  • 来自专栏张善友的专栏

    Asp.net 2.0 WebPart使用经验点滴

    The Type must be loadable by BuildManager.GetType(string typeName).

    64790发布于 2018-01-19
  • 来自专栏正则

    如何将.NET项目迁移到.NET Core

    AppDomain.CurrentDomain.GetAssemblies(),此办法不能获取到所有依赖的程序集,因为.Net有延迟加载程序集机制 方案二:适用于传统ASP.NET项目,System.Web.Compilation.BuildManager.GetReferencedAssemblies AppDomain.CurrentDomain.GetAssemblies() 地址:https://www.cnblogs.com/beixing/p/3803874.html Is there an alternative for BuildManager.GetReferencedAssemblies 地址:https://stackoverflow.com/questions/53989393/is-there-an-alternative-for-buildmanager-getreferencedassemblies-in-asp-net-co

    2.4K40编辑于 2021-12-29
  • 来自专栏蘑菇先生的技术笔记

    日志系统实战(一)—AOP静态注入

    public static void AutoWeave() { var assemblies = BuildManager.GetReferencedAssemblies(); var

    1.2K40发布于 2018-05-21
  • 来自专栏大内老A

    ASP.NET MVC Controller激活系统详解:默认实现

    它先遍历通过BuildManager的静态方法GetReferencedAssemblies方法得到的编译Web应用所使用的程序集,通过反射得到所有实现了接口IController的类型,最后通过给定的 { 7: controllerTypes = new List<Type>(); 8: foreach (Assembly assembly in BuildManager.GetReferencedAssemblies 在静态构造函数中,我们调用BuildManager的GetReferencedAssemblies方法得到所有用于编译Web应用的程序集,并从中得到所有实现了IController接口的类型,这些类型全部被添加到通过静态字段

    1.7K90发布于 2018-01-15
  • 来自专栏大内老A

    ASP.NET MVC路由扩展:路由映射

    当RegisterAllArea方法执行的时候,它先遍历通过BuildManager的静态方法GetReferencedAssemblies方法得到的编译Web应用所使用的程序集,通过反射得到所有实现了接口 在应用启动的时候,为了实现对所有Area的注册,需要遍历通过调用BuildManager的静态方法GetReferencedAssemblies方法得到的程序集列表,并通过从中找到所有AreaRegistration 注:BuildManager的静态方法GetReferencedAssemblies返回所有页编译都必须引用的程序集引用的列表,这包括包含 Web.config 文件的<system.web>/<compilation

    1.9K100发布于 2018-01-15
  • 来自专栏张善友的专栏

    WebForms使用System.Web.Routing

    requestContext.HttpContext.Request.HttpMethod)) 39: throw new SecurityException(); 40:   41: var page = BuildManager.CreateInstanceFromVirtualPath

    76380发布于 2018-01-22
  • 来自专栏IT民工的代码世界

    ASP.NET MVC实现依赖注入

    new ContainerBuilder(); //获取所有程序集 var assemblies = System.Web.Compilation.BuildManager.GetReferencedAssemblies

    89020编辑于 2023-07-19
  • 来自专栏大内老A

    ASP.NET Web API的Controller是如何被创建的?

    从如下的代码片断可以看出WebHostAssembliesResolver在实现的GetAssemblies方法中直接通过调用BuildManager的GetReferencedAssemblies方法来获取最终提供的程序集 3: ICollection<Assembly> IAssembliesResolver.GetAssemblies() 4: { 5: return BuildManager.GetReferencedAssemblies ().OfType<Assembly>().ToList<Assembly>(); 6: } 7: } 由于BuildManager的GetReferencedAssemblies方法几乎返回了在运行过程中需要的所有程序集

    1.9K60发布于 2018-01-15
  • 来自专栏EdisonTalk

    自己动手写一个简单的MVC框架(第一版)

    alloctionControllerTypes = new List<Type>(); // 获得当前所有引用的程序集 var assemblies = BuildManager.GetReferencedAssemblies alloctionControllerTypes = new List<Type>(); // 获得当前所有引用的程序集 var assemblies = BuildManager.GetReferencedAssemblies

    1.3K21发布于 2018-08-20
  • 来自专栏木宛城主

    ASP.NET那点不为人知的事(二)

    GetCompiledPageInstance(VirtualPath.Create(virtualPath), inputFile, context); }  而GetCompiledPageInstance方法内部又使用了BuildManager BuildResultCompiledType type = (BuildResultCompiledType) BuildManager.GetVPathBuildResult(context, virtualPath

    91351发布于 2018-01-11
  • 来自专栏大内老A

    1、DefaultHttpControllerTypeResolver

    从如下的代码片断可以看出WebHostAssembliesResolver在实现的GetAssemblies方法中直接通过调用BuildManager的GetReferencedAssemblies方法来获取最终提供的程序集 ICollection<Assembly> IAssembliesResolver.GetAssemblies() 4: { 5: return BuildManager.GetReferencedAssemblies ().OfType<Assembly>().ToList<Assembly>(); 6: } 7: } 由于BuildManager的GetReferencedAssemblies

    56710编辑于 2022-05-09
领券