随笔分类 - C# 相关
摘要:Attribute在.net编程中的应用(一) Attribute的基本概念 经常有朋友问,Attribute是什么?它有什么用?好像没有这个东东程序也能运行。实际上在.Net中,Attribute是一个非常重要的组成部分,为了帮助大家理解和掌握Attribute,以及它的使用方法,特地收集了几个A
阅读全文
摘要:自定义绑定 当系统提供的某个绑定不符合服务的要求时,可使用 CustomBinding 类。所有绑定都是从绑定元素的有序集构造而来的。自定义绑定可以从一组系统提供的绑定元素生成,也可以包含用户定义的自定义绑定元素。例如,可以使用自定义绑定元素在服务终结点处使用新的传输或编码器。有关可运行示例,请参见
阅读全文
摘要:前言 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力。通常ActiveX控件都是用C++或VB语言开发,本文介绍另一种方式,在.NET Framework平台上,使用C#语言开发A
阅读全文
摘要:本主题概述了创建 Internet 信息服务 (IIS) 中承载的 Windows Communication Foundation (WCF) 服务所需的基本步骤。 本主题假设您熟悉 IIS 且了解如何使用 IIS 管理工具创建和管理 IIS 应用程序。 有关以下内容的详细信息请参阅 IIS In
阅读全文
摘要:反射(C# - vs2010) 反射提供了描述程序集、模块和类型的对象(Type 类型)。 可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。 如果代码中使用了特性,可以利用反射来访问它们。 有关更多信息,请参见 利用特性扩展元数据。 下面是使
阅读全文
摘要:特性(C# - vs2010) 特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集、类型、方法、属性等)相关联。 特性与程序实体关联后,即可在运行时使用名为“反射”的技术查询特性。 有关更多信息,请参见 反射(C# 和 Visual Basic)。 特性具有以下属性: 特性可向程序中添加元
阅读全文
摘要:迭代器(C# 编程指南) 迭代器是 C# 2.0 中的新功能。迭代器是方法、get 访问器或运算符,它使您能够在类或结构中支持 foreach 迭代,而不必实现整个 IEnumerable 接口。您只需提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,它将自动生成 IEnumerabl
阅读全文
摘要:观察程序设计模式 观察者设计模式使订阅者能够向提供程序注册并接收相关通知。 它适合所有需要推送通知的方案。 该模式定义一个提供程序(也称为主题或观察对象)以及零个、一个或多个观察者。 观察者向提供程序注册,并且当任何预定义的条件、事件或状态更改发生时,提供程序就会调用观察者中的一种方法,自动通知所有
阅读全文
摘要:延迟初始化 一个对象的延迟初始化意味着该对象的创建将会延迟至第一次使用该对象时。 (在本主题中,术语“延迟初始化”和“延迟实例化”是同义词。)延迟初始化主要用于提高性能,避免浪费计算,并减少程序内存要求。 以下是最常见的方案: 有一个对象的创建开销很大,而程序可能不会使用它。 例如,假定您在内存中有
阅读全文
摘要:委托概述 委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值,如下面的示例所示: 复制 public delegate int PerformCalculation(int x, int y); 与委托的签名(由返
阅读全文
摘要:独立存储 独立存储是一种数据存储机制,它在代码与保存的数据之间定义了标准化的关联方式,从而提供隔离性和安全性。 同时,标准化也提供了其他好处。 管理员可以使用旨在操作独立存储的工具来配置文件存储空间、设置安全策略及删除未使用的数据。 通过独立存储,代码不再需要使用唯一的路径来指定文件系统中的安全位置
阅读全文
摘要:管道提供了一种进程间通信的方法。 有两种类型的管道: 匿名管道。 匿名管道提供本地计算机上的进程间通信。 匿名管道需要的系统开销比命名管道少,但它提供的服务也很有限。 匿名管道为单向的,不能在网络上使用。 它们只支持单一服务器实例。 匿名管道对线程间通信或是父子进程之间的通信非常有用,对于后者,管道
阅读全文
摘要:内存映射文件包含虚拟内存中文件的内容。利用文件与内存空间之间的映射,应用程序(包括多个进程)可以通过直接在内存中进行读写来修改文件。从 .NET Framework 4 版开始,可以使用托管代码按照本机 Windows 函数访问内存映射文件的方式来访问内存映射文件,如 MSDN Library 中的
阅读全文
摘要:编写流 备份存储区是一个存储媒介,例如磁盘或内存。 每个不同的备份存储区都实现其自己的流作为 Stream 类的实现。 每个流类型也都从其给定的备份存储区读取字节并向其给定的备份存储区写入字节。 连接到备份存储区的流叫做基流。 基流具有的构造函数具有将流连接到备份存储区所需的参数。 例如,FileS
阅读全文
摘要:基本的文件 I/O 抽象基类 Stream 支持读取和写入字节。 Stream 集成了异步支持。 其默认实现根据其相应的异步方法来定义同步读取和写入,反之亦然。 所有表示流的类都是从 Stream 类继承的。 Stream 类及其派生类提供数据源和储存库的一般视图,使程序员不必了解操作系统和基础设备
阅读全文
摘要:Visual Studio 中的 .NET Framework 类库 .NET Framework 类库由命名空间组成。每个命名空间都包含可在程序中使用的类型:类、结构、枚举、委托和接口。 当您在 Visual Studio 中创建 Visual Basic 或 Visual C# 项目时,已经引用
阅读全文
摘要:泛型代码中的默认关键字(C# 编程指南) 在泛型类和泛型方法中产生的一个问题是,在预先未知以下情况时,如何将默认值分配给参数化类型 T: T 是引用类型还是值类型。 如果 T 为值类型,则它是数值还是结构。 给定参数化类型 T 的一个变量 t,只有当 T 为引用类型时,语句 t = null 才有效
阅读全文
摘要:泛型(C# 编程指南) 泛型是 2.0 版 C# 语言和公共语言运行库 (CLR) 中的一个新功能。泛型将类型参数的概念引入 .NET Framework,类型参数使得设计如下类和方法成为可能:这些类和方法将一个或多个类型的指定推迟到客户端代码声明并实例化该类或方法的时候。例如,通过使用泛型类型参数
阅读全文