06 2011 档案
摘要:反射类型和泛型类型 从反射的角度来说,泛型类型和普通类型的区别在于,泛型类型与一组类型参数(如果是泛型类型定义)或类型变量(如果是构造的类型)关联。泛型方法与普通方法的区别也在于此。 反射的问题在于提供一种方式来检查类型参数或类型变量的此数组。如果是类型参数,反射还必须提供一种方式来检查约束。本节介绍提供检查泛型类型和方法的能力的 Type 和 MethodInfo 类的方法 概述 要理解反射处理泛型类型和泛型方法的方式,有两点很重要: 泛型类型定义和泛型方法定义的类型参数是由Type类的实例表示的。 说明:如果 Type 对象表示泛型类型参数,则 Type 的许多属性和方法具有不同的行为。.
阅读全文
摘要:反射概述 公共语言运行库加载器管理应用程序域,这些域在拥有相同应用程序范围的对象周围形成确定边界。这种管理包括将每个程序集加载到相应的应用程序域,以及控制每个程序集中类型层次结构的内存布局。程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,调用类型的方法或访问其字段和属性。反射通常具有以下用途:1) 使用 Assembly 定义和加载程序集,加载程序集清单中列出的模块,以及从此程序集中查找类型,并创建该类型的实例。2) 使用 Module 发现以下信息:包含模块的程序集
阅读全文
摘要:Using Client Running Mode 在“客户端运行模式下”的 ComponentArt Grid (即 RunningMode="Client"),提供最快的性能和最丰富的用户界面。在该模式下,分页、排序和过滤都在客户端浏览器中处理,而不用返回到服务器端刷新数据或页面元素。但是,当保存在客户端的数据超过 5000 条时,性能会降低。因此,如果你查询时返回的数据超过 5000 条,那...
阅读全文
摘要:程序集版本控制 使用公共语言运行库的程序集的所有版本控制都在程序集级别上进行。一个程序集的特定版本和依赖程序集的版本在该程序集的清单中记录下来。除非被配置文件(应用程序配置文件、发行者策略文件和计算机的管理员配置文件)中的显式版本策略重写,否则运行库的默认版本策略是,应用程序只与它们生成和测试时所用的程序集版本一起运行。 说明:仅对具有强命名的程序集进行版本控制。 运行库执行以下几步来解析程序集绑...
阅读全文
摘要:程序集安全注意事项 在您生成程序集时,您可以指定该程序集运行所需的一组权限。是否将特定的权限授予程序集是基于证据的。 使用证据有两种截然不同的方式: 将输入证据与加载程序所收集的证据合并,以创建用于策略决策的最终证据集。使用这种语义的方法包括 Assembly.Load、Assembly.LoadFrom 和 Activator.CreateInstance。 原封不动地使用输入证据作为用于策略...
阅读全文
摘要:具有强命名的程序集 强命名是由程序集的标识加上公钥和数字签名组成的。其中,程序集的标识包括简单文本名称、版本号和区域性信息(如果提供的话)。强命名是使用相应的私钥,通过程序集文件(包含程序集清单的文件,构成该程序集的所有文件的名称和散列)生成的。Microsoft® Visual Studio® .NET 和 Windows SDK 中提供的其他开发工具向一个程序集分配多个强命名。强命名相同的程...
阅读全文
摘要:全局程序集缓存 安装有公共语言运行库的每台计算机都具有称为全局程序集缓存的代码缓存(计算机范围内的)。全局程序集缓存中存储了指定给计算机中若干应用程序共享的程序集。 仅在需要时将程序集安装到全局程序集缓存中共享。一般地,除非明确要求共享程序集,程序集依赖项保持专用,并在应用程序目录中定位程序集。 另外,不必为了使 COM 互操作或非托管代码能访问程序集,而将程序集安装到全局程序集缓存。 说明:在有...
阅读全文
摘要:程序集内容 通常,静态程序集可能由以下四个元素组成: 程序集清单,包含程序集元数据。 类型元数据。 实现这些类型的 Microsoft 中间语言 (MSIL) 代码。 资源集。 只有程序集清单是必需的,类型或资源向程序集提供任何有意义的功能。 程序集中的这些元素有两种划分方法。可以将所有元素放在单个物理文件中。或将一个元素包含在几个文件中。这些文件可能是编译代码的模块 (.netmodule)、资...
阅读全文
摘要:程序集概述程序集是 .NET 框架编程的基本组成部分。程序集完成以下功能:1) 程序集包含公共语言运行库执行的代码。如果可移植可执行 (PE) 文件没有相关联的程序集清单,则将不执行该文件中的 Microsoft 中间语言 (MSIL) 代码。请注意,每个程序集只能有一个入口点(即 DllMain、WinMain 或 Main)。2) 程序集形成安全边界。程序集就是在其中请求和授予权限的单元。3) 程序集形成类型边界。每一类型的标识均包括该类型所驻留的程序集的名称。在一个程序集范围内加载的 MyType 类型不同于在其他程序集范围内加载的 MyType 类型。4) 程序集形成引用范围边界。程序
阅读全文
摘要:原文地址 http://www.devx.com/dotnet/Article/38462/0/page/1本文提出一些部署ASP.NET程序的最佳实践,你可以跟着部署你的应用程序。这些实践可以帮助你避免部署期间和部署之后的一些问题。1. 您程序集的版本确保制定一个版本控制策略。你可以在编译时使用版本戳AssemblyVersion属性,例如: [assembly: AssemblyVersion("1.0.12.34")] 通常,最好在生成期间,对所有程序集应用相同的版本号。2. 给程序集强命名程序集是.NET中安全、部署、版本控制和代码重用的最小单元。每个程序集包含:1
阅读全文
摘要:原文地址 http://www.devx.com/enterprise/Article/43086/0/page/1 利用Web Services 将 .NET 和 Java 技术融合很容易,但对于许多任务来说,Web Services 并不是Java / .NET互操作性的解决方案。 Web services 对于集成网络通信的独立组件很有用。当使用直接的调用/返回方式时,涉及的数据类型的数量非常有限,建立并让它们工作很简单。因为,web services 是标准的,所以,用它将 .NET 和 Java 融合也很容易,这让一些人相信,web services 是 Java/.NET 互操作性
阅读全文
摘要:三个警察三个囚徒过河问题三个警察和三个囚徒共同旅行。一条河挡住了去路,河边有一条船,但是每次只能载2人。存在如下的危险:无论在河的哪边,当囚徒人数多于警察的人数时,将有警察被囚徒杀死。问题:请问如何确定渡河方案,才能保证6人安全过河。设计DNS服务器中cache的数据结构设计一个DNS的Cache结构,要求能够满足每秒5000以上的查询,满足IP数据的快速插入,查询的速度要快。(题目还给出了一系列的数据,比如:站点数总共为5000万,IP地址有1000万等等)将多个集合合并成没有交集的集合给定一个字符串的集合,格式如:{aaa bbb ccc}, {bbb ddd},{eee fff},{gg
阅读全文
摘要:使用Nmock单元测试 .NET 业务对象 Nmock是在开发环境下测试复杂业务对象的唯一方式 理解单元测试问题 在一个测试驱动的开发环境(test-driven developmentenvironment)下,为复杂的业务对象编写单元测试脚本很困难,因为,业务对象可能外部依赖(高耦合,high coupling)很多其他对象。 有时,对于有限的项目预算来说,建立开发环境,并配置它们的单元测试,不大可能。但是开发人员可以通过 mock 测试对象解决这个问题。 通过创建 mock 业务对象,而不是你复杂业务对象的真正实现,你可以一次测试一个类。Mock 对象是模拟对象,复制你的业务对象的行为,
阅读全文