为什么GAC和VS引用的程序集不一致?
时间:2022-04-21
本文章向大家介绍为什么GAC和VS引用的程序集不一致?,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
我们知道VS开发中引用的程序集和运行时的程序集来源于不同的地方,前者来源于%ProgramFiles%Reference AssembliesMicrosoftFramework.NETFrameworkv{version},后者则来源于GAC。这可以从VS的添加引用对话框看出来。照理说两者应该一直才对,但是你是否发现了它们之间存在着差异吗?
这个问题是我昨天研究ASP.NET的路由系统时发现的,表示路由对象集合的RouteCollection原本如下两个属性AppendTrailingSlash 和LowercaseUrls,表示在对生成能够的URL进行规范化时是否需要添加一个额外的“/”字符(如果不存在)以及是否需要将URL转化成小写。
1: public class RouteCollection : Collection<RouteBase>
2: {
3: //其他成员
4: public bool AppendTrailingSlash { get; set; }
5: public bool LowercaseUrls { get; set; }
6: }
但是当我试图在代码中使用这两个属性的时候,却发生变异错误,提示RouteCollection并不具有这两属性。
那么唯一的解释是VS引用的System.Web.dll中的该类型并不包含这两个属性,为此我通过Reflector从%ProgramFiles%Reference AssembliesMicrosoftFramework.NETFrameworkv4.0中加载了该程序集。
其RouteCollection属性确实不包括上述的两个属性。
然后我又从GAC中加载了System.Web.dll程序集。
这里定义的RouteCollection是具有上述的两个属性的:
- PDF.NET数据开发框架操作MySQL实体类操作实例
- 使用PDF.NET数据开发框架的实体操作语言OQL构造复杂查询条件
- 鲶鱼CMS存储XSS漏洞披露
- 【分享】 纯 js 表单控件 —— 让 “增改查” 更轻松!
- K-近邻算法(KNN)概述
- 不使用DalFactory和IDAL,支持多种数据库应用
- MVC和三层,我的一个不成熟的看法,大家批批
- 实体类的二进制序列化
- 多任务验证码识别
- 一加手机系统预装APP被曝存在后门
- 单数据库,多数据库,单实例,多实例不同情况下的数据访问效率测试
- 打造轻量级的实体类数据容器
- “设计应对变化”--实例讲解一个数据同步系统
- TOP语句放到表值函数外,效率异常低下
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Math - 50. Pow(x, n)
- String - 44. Wildcard Matching
- DFS&BFS - 37. Sudoku Solver
- Array - 36. Valid Sudoku
- Array - 57. Insert Interval
- Binary Search - 378. Kth Smallest Element in a Sorted Matrix
- Array - 59. Spiral Matrix II
- Array - 54. Spiral Matrix
- String - 8. String to Integer (atoi)
- Array - 16. 3Sum Closest
- Array - 15. 3Sum
- Design - 146. LRU Cache
- LinkedList - 142. Linked List Cycle II
- LinkedList - 2. Add Two Numbers
- Array - 56. Merge Intervals