10 2013 档案
摘要:相关文章 [C#]Attribute特性[C#]Attribute特性(2)——方法的特性及特性参数AttributeUsage特性除了可以定制自己的特性来注释常用的C#类型外,您可以用AttributeUsage特性来定义您想怎样使用这些特性。AttributeUsage特性采用如下的调用惯例:1 [AttributeUsage(2 3 Validon,4 5 AllowMultiple=allowmultiple,6 7 Inherited=inherited8 9 )] 您可以非常容易地区别出哪些是定位参数,哪些是命名参数。强烈建议您在记录您的特性时采用这种格式,以便不必通过查看特性类的
阅读全文
摘要:上篇博文[C#]Attribute特性介绍了特性的定义,类的特性,字段的特性,这篇博文将介绍方法的特性及特性参数相关概念。3.方法的特性 之所以将这部分单列出来进行讨论,是因为对方法的特性查询的反射代码不同于对类的特性查询的反射代码。在这个例子里,我们将使用一个特性用来定义一种可进行事务处理的方法。1 public class TransactionableAttribute : Attribute2 {3 public TransactionableAttribute() { }4 } 1 public class TestClass 2 { 3 ...
阅读全文
摘要:简介 特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集、类型、方法、属性等)相关联。特性与程序实体关联后,即可在运行时使用名为“反射”的技术查询特性。特性具有以下属性:特性可向程序中添加元数据。元数据是有关在程序中定义的类型的信息。所有的 .NET 程序集都包含指定的一组元数据,这些元数据描述在程序集中定义的类型和类型成员。可以添加自定义特性,以指定所需的任何附加信息。可以将一个或多个特性应用到整个程序集、模块或较小的程序元素(如类和属性)。特性可以与方法和属性相同的方式接受参数。程序可以使用反射检查自己的元数据或其他程序内的元数据。 (以上来自MSDN)特性的定义首先看一个例子,
阅读全文
摘要:最近一直觉得注册的账户越来越多,帐号密码神马的容易弄混。自己就折腾了一个简单的账户管理工具,其实实现也挺简单,将每个账户的密码及相关密码提示信息,经aes算法加密之后保存到数据库,当前登录用户可以查询自己的账户信息,而不是别人的。界面如下:数据表sql语句: 1 GO 2 3 /****** Object: Table [dbo].[tb_Account] Script Date: 10/23/2013 14:00:39 ******/ 4 SET ANSI_NULLS ON 5 GO 6 7 SET QUOTED_IDENTIFIER ON 8 GO 9 10 SET ANSI...
阅读全文
摘要:密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。(以上来自百度)c#aes算法实现的辅助类 1 public static class AesSecret 2 { 3 ...
阅读全文
摘要:在C#中通过使用方法来获取返回值时,通常只能得到一个返回值。因此,当一个方法需要返回多个值的时候,就需要用到ref和out,那么这两个方法区别在哪儿呢?MSDN: ref关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用ref参数,则方法定义和调用方法都必须显式使用ref关键字。 out关键字会导致参数通过引用来传递。这与ref关键字类似,不同之处在于ref要求变量必须在传递之前进行初始化。若要使用out参数,方法定义和调用方法都必须显式使用out关键字。案例: 定义一个方法,求一个整数数组中的最大值,最小值,和,平均数。如果.
阅读全文
摘要:原文地址:http://www.cnblogs.com/xiwang/archive/2012/10/25/2740114.html记录在此,方便查阅。C#中在使用UDPClient循环监听端口,在断开UPDClient的时候,使用try...catch捕获了异常,System.NET.Sockets.SocketException“一个封锁操作被对 WSACancelBlockingCall 的调用中断”,ErrorCode=10004。 接收时的代码如下:IPEndPoint ipendpoint = new IPEndPoint(IPAddress.Any, 0); ...
阅读全文
摘要:原文地址:http://blog.sina.com.cn/s/blog_70bf579801017ylu.html,记录在此方便查看解决办法:MSDN的说明:Close 方法可关闭远程主机连接,并释放所有与 Socket 关联的托管资源和非托管资源。关闭后,Connected 属性将设置为 false。对于面向连接TCP的协议,建议先调用 Shutdown,然后再调用 Close 方法。这可以确保在已连接的套接字关闭之前,已发送和接收该套接字上的所有数据。如果需要在不首先调用 Shutdown 的情况下调用 Close,则可以将 DontLingerSocket 选项设置为 false,并且指
阅读全文
摘要:上篇文章主要介绍了程序集的内容:程序集和反射(一),时隔这么久,今天终于腾出点时间,把反射部分的知识点给整理一下,不把这个写完,心里总觉得有点堵。对于反射,我相信很多人跟LZ一个德行,不会,所以不用,不用,所以永远不会。 通过System.Reflection命名空间中的类已经System.Type,您可以获取有关已加载的程序集和在其中定义的类型(如类、接口、值类型)的信息。您也可以使用反射在运行时创建类型实例,以及调用和访问这些实例。 程序集包含模块,而模块包含类型,类型又包含成员。 反射则提供了封装程序集、模块和类型的对象。 您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现
阅读全文
摘要:---------------------------Microsoft Visual Studio---------------------------生成下面的模块时,启用了优化或没有调试信息:F:\AspdotNet\MyAssembly\AssemblyDemo\bin\Debug\MyAssembly.dll若要调试此模块,请将其项目生成配置更改为“调试”模式。若要取消显示此消息,请禁用“启动时若没有用户代码则发出警告”调试器选项。将原项目vs2010编写,用vs2012打开运行时报上面的错误。解决办法:重新生成,重新引用dll
阅读全文
摘要:简介log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。 log4net是Apache软件基金会Apache Logging Services工程的一部分。Apache日志服务工程致力于为程序调试和审计提供跨语言的日志服务。(f:百度百科)原理 Log4net是基于.NET开发的一款记录日志开源组件。它通过一套XML配置的日志引擎,将日志分不同的等级,分别是:FATAL 、 ERROR、 WARN、 INFO 、 DEBUG、ALL(允许所有的日志请求)和OFF(拒绝所有的日志请求),
阅读全文