`
taowen
  • 浏览: 190631 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
public interface IBlock { string Quote(); void Append(char c); bool ShouldAppendQuotedBlock(char c); } public abstract class NestedBlock : IBlock { private readonly NestedBlock parent; private readonly List<IBlock> block ...
有三个主要的障碍: 1、服务器解析不到客户端的assembly,因为callback的代码在客户端的assembly中 2、TypeFilterLevel默认不是Full 3、普通callback代码不能访问客户端的变量,因为不是serializable的 解决办法: 1、利用AppDomain的AssemblyResolve事件,让自己来处理assembly的查找逻辑。并且让客户端在开始的时候把自己的assembly位置发给服务器。 2、 BinaryServerFormatterSinkProvider serverFormatter = new BinaryServerFormatt ...
WPF Drag drop not working when used in outlook Topmost is not "topmost" when change screen resolution Context menu overlapped by transparent window sometime Click through, underlying window can get the mouse click event [*] even it do not have mouse capture focus could remain in colla ...
新建class时: 考虑对象的拷贝语义(copyable?) 新建member function时: 如果不改变对象状态,在声明后面加const(和ruby的!开头的方法一样) 新建function parameter时: 如果是传值的,而且是复杂对象,尽量使用const ValueType & 尽量把值放在shared_ptr中,然后把只传递指针(和C#与JAVA一样) 新建virtual member function时: 是不是要把destructor也声明成virtual的? 是不是要声明成pure virtual的 实例化对象时: 如果能实例化在栈上最好 不能,把指针放 ...
让控件更灵活的Data Template GridViewColumn gvcName = new GridViewColumn(); gvcName.Header = "Name"; DataTemplate nameTemplate = new DataTemplate(); FrameworkElementFactory nameFactory = new FrameworkElementFactory(typeof(ContactPropertyLabel)); ...
这是被测的应用程序: 应用.NET 3.0提供的UIAutomation,我们可以用以下步骤来进行测试: 1. 启动应用程序 string path = @"The Path To The Application"; Process process = Process.Start(path); 2. 获得主窗口对应的AutomationElement Thread.Sleep(1000); AutomationElement aeMainWindow = AutomationElement.FromHandle(process.MainWind ...
今天早上一时兴起,去网上下载下来JMock,EasyMock最新版本来玩玩。用来测试的行为很简单。就是有一个窗体,上面有一个文本框,一个按钮。如果点击按钮,就会把文本框的内容设置为“Hello”。应用MVP模式,这个行为应该在Presenter中,而View接口应该是这样的: public interface View { public void setText(String text); public void addActionListener(ActionListener actionListener); } 我这里就不TDD了,直接给出Presenter的实现,然后 ...
ADO.NET Entity Framework Linq Active Record Hibernate 从传统到新贵,从框架到语言。RoR 和 C#3.0 以及传统的 Hibernate。持久化框架烽烟再起。
引言 最近杂七杂八地思考了不少东西。但是很惊异地发现这三三两两的杂思竟然彼此互相联系。隐隐地道出了一个共同的主题。这个主题就是重构。修饰词是被动的。 主动重构就是我们所熟悉的重构。比如说在Eclipse中按下Shift+Alt+R,出现一个对话框提示你输入新的名字,然后Eclipse把要改名的类或者方法本身改名,以及所有对这个名字的引用都改成新的。那么什么是被动重构呢? 所谓被动重构就是你不直接告诉你所使用的工具,你要做重构。相反,是由工具来检测到你做了什么改动。其余的都基本一样。比如就上面这个例子,如果用被动重构来做的话,就是在改名之前check一次,然后你来改名字,改完之后再check ...
ajoo同学的酒窝有.NET版本啦! 项目主页: http://dotnet.dimple.googlepages.com/home 存在意义: 快速制作测试用的stub。手工继承,mock框架之外的第三种选择。 简单使用: public class StubDbCommand { public object ExecuteScalar() { return "Hello"; } public static Db ...
二进制文件和源代码可以从这里下载到: http://naive.container.googlepages.com/home 存在的意义: 最简单原始的组件装配 使用: public class Susan : ContainerBound { public void FallInLove() { Console.WriteLine("Susan has fallen in love with " + Get<Boy>().Name); } } p ...
创建对象有很多种方式,可以用工厂,可以用容器装配。所以不在乎再多一种啦。。。在C#上写了一种古怪的创建对象的方式,给大家kk。 首先,这是配置代码。意思是说在Lily的宇宙中(每个人都有一个小宇宙,圣斗士。。。),她的Boy是tom,也就是我的眼中只有你。相应的在Lucy的眼中只有joy。 Tom tom = Void.GiveMe<Tom>(); Joy joy = Void.GiveMe<Joy>(); Void.UniverseOf<Lily>().Exist(tom); Void.UniverseOf<Lucy>().Exist ...
谁动了我的assembly? 你有没有曾经把.NET的用对象变成过COM对象?你有没有用过.NET Remoting?那你有没有两者同时用呢?如果你有,可能你也遇过同一个问题。.NET抱怨说,找不到要序列化的Assembly。因为COM对象被执行的时候,其所处的位置是宿主的位置,而不是Assembly所在的位置了。由于Binary Formatter查询Assembly的一个小问题,导致了这个错误信息。在MSDN论坛上抄来如下代码,解决了问题: private static Assembly CurrentDomain_AssemblyResolve(object sende ...
微软在Smart Document技术中第一次引入了Task Pane这个自定义的可能。但是由于Smart Document需要XML Expansion Pack,所以部署会比较麻烦一点。而且Smart Document是基于COM技术的,并且其上也只能放一些标准的控件,所以使用的人也许并不多。 后来的Visual Studio Tools for Office 2005(VSTO2)中包括了一个叫做Actions Pane的技术。该技术就是基于Smart Document的Task Pane来实现的。应用了Actions Pane的Code Behind Document都会attach上一 ...
我要讲的这个“茴”字是什么呢?其实是excel的用户自定义函数(udf)。 excel从4.0开始提供了第一种添加udf的方式:XLL。这个本质上是一个DLL。但是只要这个DLL暴露了excel规定的一些函数,并暴露出来,再把xll注册到excel就能让excel把你写的udf添加进去了。 后来excel又支持了vba。这个时候臭名远扬的“宏”就出现了。在excel中,用vba写的sub(没有返回值的函数)被称作宏,而function(有返回值的函数)可以被用作udf。所以“茴”字的第二种写法是vba。一个变种是把vba做成XLA文件,然后注册。包装成XLA之后,就可以把udf分发了,不然则和具 ...
Global site tag (gtag.js) - Google Analytics