.Net
郗富琦
这个作者很懒,什么都没留下…
展开
-
windows2003 IIS6.0 web服务器配置及穿越防火墙
1. IIS6.0 安装在控制面板里依次选择“添加或删除程序”的“添加/删除Windows组件”;双击“应用程序服务器”,再双击“Internet信息服务”,选中“万维网服务”(注:此选项下还可进一步作选项筛选,请根据自己需要选用,如图1所示),点确定即安装完成。 2原创 2011-10-11 17:06:15 · 3649 阅读 · 0 评论 -
多线程中的lock,Monitor.Wait和Monitor.Pulse
有CSDN的朋友问一个问题,“Lock关键字不是有获取锁、释放锁的功能吗?...为什么还需要执行Pulse?”也有朋友有些疑点,“用lock就不要用monitor了”,“Monitor.Wait完全没必要”,“为什么Pulse和Wait方法必须从同步的代码块内调用?”这些疑问很自然。在大部分情况下,lock确实能基本达到我们要求资源同步的目的,加上配合其他同步工具,比如事件(AutoR转载 2013-12-18 09:52:05 · 1976 阅读 · 0 评论 -
Visual Stdio 2010使用NUnit
VS提供了单元工具,如果习惯使用Unit的用户可以按照下面方法安装使用。1、下载Unit下载地址:Nunit-Download有Release的版本也有下一个版本。大家下载win的NUnit-2.6.3.msi。2、安装Nunit3、选择VS界面上的“扩展管理器”4、安装Visual Nunit 20105、将视图->其它窗口->Vi原创 2014-01-05 11:26:10 · 1840 阅读 · 0 评论 -
VS2010使用Nunit的断点功能
目前nunit的老版本不支持.net framework 4.0程序的测试。需要做以下配置:1、 <!-- The GUI only runs under .NET 2.0 or higher. The useLegacyV2RuntimeActivationPolicy setting only applies under .NET 4.0 and permit原创 2014-01-06 09:44:51 · 1691 阅读 · 0 评论 -
观察者模式-Event实现方案
书接上文,委托是.Net Framework提供的类型安全的回调机制。委托本质上是类,类里面实现了带有方法指针的构造函数、Invoke、BeginInvoke和EndInvoke四个方法。当然这些工作都是CLR和编译器帮助我们完成的。事件建立在委托的基础上。CLR偷偷地帮我们把一个事件转换为一个私有字段和两个公有方法。一个私有字段是私有委托字段,两个公共方法是对委托字段的增加和移除的线程安全调用。原创 2014-01-07 11:13:42 · 1528 阅读 · 0 评论 -
C#调用C生成DLL文件
环境: VS2010, Win71. 添加新项目->Win32项目 输入名称:CSInvokeCDll2.应用程序设置中选择DLL然后点击完成3 在CSInvo在CSInvokeCDllkeCDll.CPP中书写C代码#include "stdafx.h"#include "malloc.h"#include "userinfo.h"typedef struct {原创 2011-12-29 11:13:16 · 4923 阅读 · 8 评论 -
软件功能性升级-发布者控制策略
《私有部署应用程序升级策略》一文中采用用户手工管理的方式升级功能,但这样使用并不方便,需要用户参与操作,那么有没有一键安装的方式呢。有,那就是发布者控制策略,在一键安装时,将需要升级的策略生成到GAC中,将升级文件(DLL或者exe)安装到应用程序基目录或者GAC中。原创 2014-01-17 15:53:51 · 1578 阅读 · 0 评论 -
部署强命名程序集到GAC
上文私有部署应用程序升级策略中我们制作了SomeMethodLib.dll文件并通过私有部署方式应用,那么如何部署到GAC并使用呢。原创 2014-01-17 11:54:56 · 1908 阅读 · 0 评论 -
软件升级- 私有部署应用程序升级策略
我们的应用程序发布后,常常因用户需求变更或者发现Bug而要求应用程序升级,.Net给我们提供了一个方便的方法升级独立模块(Dll或者exe)。如果升级后客户发现使用起来不方便还可以简单的退回到前一个版本。这个方法的叫做配置管理控制。原创 2014-01-17 10:19:09 · 2965 阅读 · 0 评论 -
回溯法-01背包问题之二:顺序执行模式
上文已讲述了回溯法以及01背包问题的原理,本文讲述如何顺序执行解决01背包问题以及通过模板模式重构软件。一、顺序执行流程图图1无剪枝函数的01背包问题顺序执行算法流程图图2 有剪枝函数的01背包问题顺序执行算法流程图无剪枝函数是通用的深度遍历算法,为了减少搜索深度可通过剪枝函数处理完全不可能的分枝。与递归方案的区别主要表现在i>=n后需要“回溯”,即用后进先出的方式将物原创 2014-05-09 15:24:55 · 4642 阅读 · 0 评论 -
回溯法-01背包问题之一:递归模式
一、回溯法回溯法是一个既带有系统性又带有跳跃性的搜索算法。它在包含问题的所有解的解空间树中按照深度优先的策略,从根节点出发搜索解空间树。算法搜索至解空间树的任一节点时,总是先判断该节点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该节点为根的子树的系统搜索,逐层向其原先节点回溯。否则,进入该子树,继续按深度优先的策略进行搜索。运用回溯法解题通常包含以下三个步骤:· 针对所给问题原创 2014-05-09 14:48:43 · 10505 阅读 · 0 评论 -
动态规划法-01背包问题
一 几个概念:最优化问题:有n个输入,它的解由这n个输入的一个子集组成,这个子集必须满足某些事先给定的条件,这些条件称为约束条件,满足约束条件的解称为问题的可行解。满足约束条件的可行解可能不止一个,为了衡量这些可行解的优劣,事先给出一定的标准,这些标准通常以函数的形式给出,这些标准函数称为目标函数,使目标函数取得极值的可行解成为最优解,这类问题称为最优化问题。二 最优性原理:对原创 2014-05-15 11:05:40 · 2862 阅读 · 1 评论 -
VS2010通过Nuget无法初始化 PowerShell 主机
無法初始化 PowerShell 主機。如果您的 PowerShell 執行策略設置設为 AllSigned,請先打開程序包管理器控制台以初始化該主機”的錯誤,解决辦法如下:使用管理員運行 PowerShell 控制台,輸入命令:Set-ExecutionPolicy RemoteSigned -Force原创 2014-08-01 02:06:37 · 4789 阅读 · 0 评论 -
未能解析此远程名称:’nuget.org’
打开Nuget,发现又出问题了:未能解析此远程名称:’nuget.org’。在浏览器中输入 http://nuget.org 会发现是无法打开的。在cmd命令行里输入: nslookup nuget.org 一般也是无法解析到这个域名的ip地址。不过在cmd命令行里输入: nslookup nuget.org 8.8.8.8 向谷歌的dns查询这个域名,便能正确返回域名对应ip转载 2014-08-01 01:40:56 · 2318 阅读 · 0 评论 -
未能正确加载包"Microsoft.Data.Entity.Design.Package.MicrosoftDataEntityDesignPackage
vs2010使用中出现.edmx文件无法按照视图打开,正确的打开方式如图一所示:同时也会出现诸如:未能正确加载包"Microsoft.Data.Entity.Design.Package.MicrosoftDataEntityDesignPackage原创 2014-08-09 23:58:06 · 3569 阅读 · 0 评论 -
Silverlight 拾取日期和时间的控件-DateTimePicker
实现了一个Sliverlight可拾取时间和日期的控件原创 2014-09-25 16:26:48 · 2915 阅读 · 0 评论 -
WPF MultiBinding 给数据目标赋值后绑定无效的问题
近来用WPF制作做了一个IP控件的试验,IP数值通过TextBox输入(也可以定制0-254的输入),需要4个TextBox多路绑定至System.Net.IPAddress,如图前4个TextBox作为数值输入,多路绑定至IPAddress, 最后一个TextBox绑定了IPAddress,且依赖项属性IPAddressProperty 变化时会引发函数IPAddressChangedCallb原创 2013-08-30 15:40:32 · 2216 阅读 · 0 评论 -
序列化之:事件不可序列化
实体类中如果存在事件,则在序列化时会报错:程序集“WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”中的类型“System.ComponentModel.PropertyChangedEventManager”未标记为可序列化。如:[Serializable] cla原创 2013-08-18 19:00:25 · 2878 阅读 · 0 评论 -
WPF 字体、颜色等属性的序列化和反序列化
WPF自带的一些属性比如System.Windows.Media.Brush、System.Windows.Media.FontFamily、System.Windows.FontWeight等不具有直接序列化能力,本文针对这一点设计名为PropertySerializateDictionary的类,实现了不同类不同对象公有属性的序列化和反序列化。本类继承于Dictionary, IXmlSeri原创 2013-06-25 12:08:18 · 2913 阅读 · 0 评论 -
visual+studio+2010打包.net+3.5+sp1
利用visual studio 2010进行打包程序,默认安装的是Framework 4.0,如果需要将3.5sp1打包到系统中一起安装(选择了"从与我的应用程序相同的位置下载系统必备组件"时),会提示很多诸如此类错误“系统必备组件的安装位置未设置为“组件供应商的网站”,转载 2011-10-10 21:35:37 · 2283 阅读 · 0 评论 -
|DataDirectory|解决web.config或app.config数据库连接的相对路径问题
connectionStrings>add name="sqlconstr" providerName="System.Data.Sql" connectionString= "Data Source=./SQLEXPRESS;AttachDbFilename=|DataDirectory|db.mdf;Integrated Security=True;C转载 2011-10-23 20:23:28 · 3158 阅读 · 0 评论 -
C#/C++/CLI运行效率测试之二: Native C++调用Native C++ DLL
本文分为两方面一. Native C++调用Native C++ DLL 并测试运行时间二. 完全由C# 实现运算代码 并测试运行时间详细过程:一:至于如何获取EfficiencyNativeCPPDLL.dll 和 EfficiencyNativeCPPDLL.lib 以及生成项目EfficiencyNativeCPPDLL请参见前面的文章 C#通过CLR/C++调用Nat原创 2011-12-29 22:00:06 · 4666 阅读 · 3 评论 -
C#/C++/CLI运行效率测试之一: C#通过CLR/C++调用Native CPP 类
综述 : 本文章介绍.Net 环境下C# 通过托管C++调用本地C++ Dll文件, 示例环境为:VS2010, .Net4.0, Win7. 具体事例为测试C++, C#, 及C#调用本地C++Dll文件进行浮点运算效率的一部分. 如果需要查看三者的效率, 请继续阅读下面的文章.a 创建本地CPP类库1. 创建本地CPP的Dll ---->EfficiencyNative原创 2011-12-29 20:59:22 · 12778 阅读 · 7 评论 -
C#多线程之 任务工厂
有时候 需创建一组具有相同状态的Task对象, 可使用System.Threading.Tasks命名空间中TaskFactory类型和TaskFactory类型,两者均派生自System.Object。所有任务可共享的属性有:CancellationToken,TaskScheduler, TaskCreationgOption, TaskContinuation.对此有以下测试目的原创 2012-05-05 15:21:03 · 3100 阅读 · 0 评论 -
C#多线程值之APM 一
APM全称为Asynchronous Programming Model即异步编程模型。这种方式可构建高性能、可伸缩应用程序,但同时也容易造成界面线程与工作线程的不同步问题。比如错误:线程间操作无效: 从不是创建控件“MyWIndowsForm”的线程访问它。 异步操作允许用非常少的线程执行更多操作,和线程池配合,异步操作可利用机器中所有CPU资源,APM的主要表现形式为:BeginXxx和E原创 2012-05-10 16:29:17 · 2102 阅读 · 2 评论 -
C#多线程值之APM二:GUI线程处理模式1
GUI应用程序(包括Windows窗体、WPF和Silverlight)引入一个线程处理模式。在这个模式中,创建窗口的线程是唯一能对那个窗口更新的线程。GUI中经常需要生成一个异步操作,使得GUI线程不至于堵塞并停止响应用户输入(鼠标、键盘等),然而异步完成后,完成该异步操作的的线程无法将结果更新至UI。因此,线程池线程必须采用某种方式让GUI线程更显UI。有三种方式实现将结果同步到UI本文描原创 2012-05-11 14:33:49 · 1772 阅读 · 4 评论 -
C#多线程值之APM二:GUI线程处理模式2
上文中讲述了工作者线程将数据同步到GUI中的第一种方式,本文讲述第二种方式:Control.Invoke()与Control.BeginInvoke() // 摘要: // 在拥有此控件的基础窗口句柄的线程上执行指定的委托。 // // 参数: // method: // 包含原创 2012-05-11 16:00:11 · 1595 阅读 · 0 评论 -
C# 读取二进制文件 判断文件结束的方法
网上资料中很多是通过try catch 获取文件是否读取完毕. 总觉着这种捕获异常的方式太丑陋.于是找到了另外一种更好的方式. 可直接判断文件结束.FileStream fs = File.OpenRead(path);BinaryReader brReader = new BinaryReader(fs); while (brReader.BaseStream.Position <原创 2012-01-05 09:04:58 · 9799 阅读 · 0 评论 -
C#项目中读取并修改App.config文件
1. 向C#项目实例中的项目添加app.config文件:右击C#项目实例中项目名称,选择“添加”→“添加新建项”,在出现的“添加新项”对话框中,选择“添加应用程序配置文件”;如果项目以前没有配置文件,则默认的文件名称为“app.config”,单击“确定”。出现在设计器视图中的app.config文件为: 在项目进行编译后,在bin\Debuge文件下,将出现两个配置文件(以本项目原创 2013-01-17 16:52:20 · 1303 阅读 · 0 评论 -
VS2010中,无法嵌入互操作类型“……”,请改用适用的接口的解决方法
选中项目中引入的dll,鼠标右键,选择属性,把“嵌入互操作类型”设置为False。原创 2013-05-03 11:26:11 · 1057 阅读 · 0 评论 -
VS2010添加链接文件
项目中经常出现文件复用,但是如果在引用另一个文件的时候不是复制到当前项目中而是引用其“快捷方式”那么将会减少代码复制,非常方便于项目的维护,如图1所示图1 那个有个箭头的文件就是链接文件了,添加方法就是在项目里添加现有文件,选中要添加的文件,在添加按键上点下三角,选添加为链接。 如果生成到bin文件下的话,就右击链接点属性,复制到输出目录改为true原创 2013-05-31 15:05:40 · 2339 阅读 · 0 评论 -
XML 转义符
空格 ( )Tab ( )回车 ( )换行 ( )& —— & ;< —— < ;> —— > ;' —— &apos ;" —— " ;Copy right -- ©原创 2013-05-31 10:35:07 · 1095 阅读 · 0 评论 -
指定的命名连接在配置中找不到、非计划用于 EntityClient 提供程序或者无效。
对ADO.Net进行单元测试的时候提示错误:“指定的命名连接在配置中找不到、非计划用于 EntityClient 提供程序或者无效。”原因:必须在单元测试的()原创 2014-11-10 11:27:43 · 1587 阅读 · 0 评论