当前位置: 首页 > news >正文

寻求南宁网站建设人员有没有做软件的网站

寻求南宁网站建设人员,有没有做软件的网站,域名第二年续费价格,宁波seo排名如何优化AreaRegistration.RegisterAllAreas() 我们新建一个名称为Admin的Area#xff0c;VS生成下面的代码。 { action , id 我们先来看AreaRegistration这个抽象类#xff0c;实际上#xff0c;它只有一个核心功能#xff0c;就是RegisterAllAreas#xff0c;获取所有继承它的…AreaRegistration.RegisterAllAreas()  我们新建一个名称为Admin的AreaVS生成下面的代码。        { action  , id  我们先来看AreaRegistration这个抽象类实际上它只有一个核心功能就是RegisterAllAreas获取所有继承它的子类类型然后创建它在为他创建一个AreaRegistrationContext在调用它的RegisterArea方法。      TypeCacheName     AreaName {    RegisterAllAreas(RouteCollection routes, IBuildManager buildManager, Type areaRegistrationTypes  (Type areaRegistrationType   CreateContextAndRegister(RouteCollection routes,   thisNamespace  (thisNamespace !  为什么要有AreaRegistrationContext这个类型呢假如没有它AreaRegistration子类创建完成时就可以直接注册了我们的AdminAreaRegistration的RegisterArea方法完全可以通过RouteCollection再重载一个MapRoute方法用于Area路由的注册。像下面这个样子。    { action  , id   这样不是很好么跟随着源码详细瞧一瞧这个AreaRegistrationContext AreaRegistrationContext  这个类本质上只有一个属性那就是命名空间。    HashSet _namespaces   HashSet AreaRegistrationContext( areaName, RouteCollection routes,   AreaName { ;   ICollection {  RouteCollection Routes { ;    State { ;   Route MapRoute( name,  url,  defaults,  constraints,  我们回到核心的RegisterAllAreas方法中。   (AreaRegistration).IsAssignableFrom(type) !    RegisterAllAreas(RouteCollection routes, IBuildManager buildManager, Type areaRegistrationTypes  (Type areaRegistrationType  通过TypeCacheUtil.GetFilteredTypesFromAssemblies获取出来的类型必须符合IsAreaRegistrationType委托(AreaRegistration).IsAssignableFrom(type)不难理解必须是AreaRegistration的子类那type.GetConstructor(Type.EmptyTypes)呢其实一开始我也不明白它是什么意思后来通过Console写了个小程序测试了下。   Main(  tac   tbc   tcc   (tac !   (tbc !   (tcc ! View Code  输出 类TA :False 类TB :False 类TC :True 请按任意键继续. . . 我们可以明白了也就是我们的AdminAreaRegistration不能有构造器Visual Studio生成的确实没有构造器。但是这里为什么要这样约定呢确实想不通我们先继续回到刚刚的TypeCacheUtil.GetFilteredTypesFromAssemblies方法。首先会尝试从缓存中获取类型与往常不同的是这里缓存的格式是xml文件缓存的原因应该很容易理解频繁反射会造成性能的影响改良反射的方式有多种这里我们学到了一种缓存。关于TypeCacheSerializer如何工作和ReadTypesFromCache具体是如何实现的这里就不去看了主要就是一些关于Stream和XmlDocument这两个类的操作。但是有必要提一下IBuildManager这个接口。在MVC中的实现者是BuildManagerWrapper内部实际使用的是BuildManager位于System.Web.Compilation关于它的详细资料少之又少只知道主要负责站点的动态编译和程序集的管理。我们知道可以通过AppDomain来获取应用程序相关的程序集但这里为什么用BuilderManager呢想必必有什么不同   IEnumerableType FilterTypesInAssemblies(IBuildManager buildManager, PredicateTypeIEnumerableType typesSoFar  (Assembly assembly  typesSoFar.Where(type  TypeIsPublicClass(type)  我们看到这里用它获取所有的应用程序集。在foreach前打一个断点。借助即时窗口我们可以和AppDomain获取的程序集进行一个比较。 string[] Arr1  assemblies.Cast().Select(aa.FullName).ToArray(); 已计算表达式表达式没有值 string[] Arr2  AppDomain.CurrentDomain.GetAssemblies().Select(aa.FullName).ToArray(); 已计算表达式表达式没有值 Arr1.Length 36 Arr2.Length 42 string[] Arr3  Arr2.Except(Arr1).ToArray(); 已计算表达式表达式没有值 Arr3 {string[6]}     [0]: System.Runtime.Caching, Version4.0.0.0, Cultureneutral, PublicKeyTokenb03f5f7f11d50a3a     [1]: Microsoft.Build.Utilities.v4.0, Version4.0.0.0, Cultureneutral, PublicKeyTokenb03f5f7f11d50a3a     [2]: Microsoft.JScript, Version10.0.0.0, Cultureneutral, PublicKeyTokenb03f5f7f11d50a3a     [3]: Microsoft.VisualStudio.Web.PageInspector.Runtime, Version15.0.0.0, Cultureneutral, PublicKeyTokenb03f5f7f11d50a3a     [4]: Microsoft.VisualStudio.Web.PageInspector.Tracing, Version15.0.0.0, Cultureneutral, PublicKeyTokenb03f5f7f11d50a3a     [5]: Microsoft.VisualStudio.Debugger.Runtime, Version15.0.0.0, Cultureneutral, PublicKeyTokenb03f5f7f11d50a3a 这里列出的几个命名空间我也不熟悉但是大致可以了解使用AppDomain返回的程序集是当前AppDomain下所有程序中显示使用过的类型所在的程序集如果你对AppDomain有了解希望不要被我误解而BuildManager返回的是和程序运行环境甚至配置调试相关的程序集我们可以这么理解BuildManager提供更强大的功能可以负责站点的动态编译和程序集的管理。关于AreaRegistration类型的缓存我们基本已经了解拿到所有的AreaRegistration类型后我们针对每一个进行一次路由配置工作。    RegisterAllAreas(RouteCollection routes, IBuildManager buildManager, Type areaRegistrationTypes  (Type areaRegistrationType  具体的   CreateContextAndRegister(RouteCollection routes,   thisNamespace  (thisNamespace !  我们来思考一下这个thisNamespace会是什么值呢由于这里的GetType目标是AdminAreaRegistration在我这里所以是Mvc_Web.Areas.Admin然后会被添加到这里的AreaRegistrationContext的Namespace属性中然后调用子类重写的RegisterArea方法最终添加到RouteCollection中我们看最后调用的MapRoute方法。  Route MapRoute( name,  url,  defaults,  constraints,  (namespaces    Namespaces !  useNamespaceFallback  (namespaces   || namespaces.Length   最重要的是倒数第二行和倒数第三行他和控制器的匹配有关其实根据UseNamespaceFallback这个也很容易理解如果我们的AdminAreaRegistration没有命名空间那就允许它退回到其他地方找。 原文来自技术之家转载于:https://www.cnblogs.com/buntinginfo/p/7103515.html
http://www.yutouwan.com/news/453936/

相关文章:

  • 网站用什么框架做wordpress站内seo
  • 网站seo优化推广怎么做网店推广的作用是选择题
  • 网站空间 phpwordpress主题 免费 自媒体
  • iis配置网站是什么各网站封面尺寸
  • 做写字楼租赁用什么网站好wordpress页脚贴底部
  • 湘阴网站设计青海手机网站建设
  • 网站短链接生成器长沙企业模板建站
  • 电子商城平台网站开发我做的网站有时打开很慢什么原因
  • 大连 网站制作深圳做微网站
  • 河北网站建设与管理上海小程序网站开发公司
  • asp网站源码使用wordpress支持代码高亮
  • 访问网站有音乐背景怎么做做海淘的网站做海淘的网站
  • 网站开发毕设ppt电脑网站兼职在哪里做
  • 仿《快乐麻花》网站源码家居装饰网站设计论文
  • soho建网站哪有做网站的
  • 南京触屏网站开发百度地图在线使用导航系统
  • 做网站文案用哪个软件网页美工设计时色彩搭配的注意事项
  • 网站优化的怎样给公司做免费网站
  • 南昌企业网站模板建站台州路桥做网站的公司有哪些
  • 用服务器做网站需要购买域名吗北京学做网站
  • 做seo是要先有网站吗哪个网站专门做母婴
  • 济南川芎网站建设公司武邑县网站建设
  • 台州网站建设慕枫用php做购物网站
  • 加快建设企业门户网站建成都住建局官网全生命周期
  • 专做杰伦头像的网站百度网盟推广案例
  • 网站设计与建设网站备份
  • 企业怎么做网络推广泉州seo网站关键词优推广
  • lol网站怎么做网站栏目页 优化
  • 网站做线支付平台系统多少钱开发一个网站需要多少时间
  • 网站建设计划传奇网页版手游