最近公司要做一个关于智能客户端的项目,在网上也找了一些解决方案,发现了微软的Microsoft Sync Framework同步框架,它即可以解决数据同步,也可以解决文件同步等问题,本人通过学习一些例子终于实现一个文件两步的例子,现在与大家一起分享,我用的是Microsoft Sync Framework RTM 1.0版。

     新建项目,然后引用Microsoft.SynchronizationMicrosoft.Synchronization.Files两个命名空间,Microsoft.Synchronization包括了Microsoft Sync Framework的基本功能,而 Microsoft.Synchronization.Files是用来解决文件同步了,FileSyncProvider类是用来文件同步的Provider,它可以用来设置要同步的文件列表,也可以设置哪些文件被排序,例子中就排除了用来记录其id的文件(filter.FileNameExcludes.Add(idFileName););当在应用同步之前,要用FileSyncProvider类的实例来更新一起要同步文件的更改,方法为provider1.DetectChanges()。将源和目标Provider设置好后,就可以用SyncOrchestrator类的实例进行同步了,设置SyncOrchestrator类的实例的LocalProviderRemoteProvider属性,分别表示本地和远程,设置Direction属性,它表示同步的方向,可以是上传、下载和双向的,执行Synchronize()方法同步文件。

       

Code

 

     我也是刚刚开始学习,有不正确的地方望高人扶正。

源码下载

posted @ 2008-09-16 16:27 薛.net 阅读(95) | 评论 (0)编辑

  最近做项目时遇到这样一个问题,要用PropertyGrid控件显示object对象的部分属性,其它属性不显示,这种情况该如何处理呢,能过查找资料,发现这样一个接口ICustomTypeDescriptor,PropertyGrid控件通过ICustomTypeDescriptor接口获取显示的属性及其内容,这样一来就可以通过这个接口的GetProperties方法返回我们要显示的属性内容了,这个方法返回的类型是PropertyDescriptor集合,在通过扩展PropertyDescriptor来实现自定义内容。

  CustomProperty类是用来定义自定义属性内容的,包括要显示的名称、编辑的值、分类、说明、编辑器等等,CustomPropertyCollection类是CustomProperty类的集合,继承了ICustomTypeDescriptor接口,当定义完这个集合类后,将其赋给PropertyGrid控件的SelectedObject属性,就可以实现自定义显示属性了。

  通过这个方式也可以实现将属性显示名设置为中文或其它语言。

  类图如下:

  运行结果如图:

 

下载:/Files/xuemingfeng/PropertyGridEx.rar

<<转载请注明出处>>

posted @ 2008-08-22 09:42 薛.net 阅读(1261) | 评论 (1)编辑

2008年8月8日

2008年8月9日

2008年8月10日

2008年8月11日

2008年8月12日

2008年8月13日

2008年8月14日

2008年8月15日

2008年8月16日

2008年8月17日

2008年8月18日

2008年8月19日

2008年8月20日

2008年8月21日

2008年8月22日

2008年8月23日

 

2008年8月24日

 

posted @ 2008-08-12 20:17 薛.net 阅读(78) | 评论 (1)编辑

闲来无事,写了这么一个东西玩玩。

 

下载:http://files.cnblogs.com/xuemingfeng/WindowsFormsApplication4.rar

posted @ 2008-07-29 12:00 薛.net 阅读(117) | 评论 (2)编辑

最近研究CodeDomProvider,但是编译linq时总是报错,编译决是不过,后来在国外的网站找到了原来CodeDomProvider是有版本的,代码如下:

// 创建编译器对象

            CodeDomProvider p 
= new CSharpCodeProvider(new Dictionary<stringstring>() "CompilerVersion""v3.5" } });//CodeDomProvider.CreateProvider("CSharp");

            
//ICodeCompiler cc = p.CreateCompiler();
            
// 设置编译参数
            CompilerParameters options = new CompilerParameters();
            options.IncludeDebugInformation 
= true;
            options.ReferencedAssemblies.Add(
"System.dll");
            options.ReferencedAssemblies.Add(
@"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll");
            options.ReferencedAssemblies.Add(
"System.Data.dll");
            options.ReferencedAssemblies.Add(
@"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Data.DataSetExtensions.dll");
            options.ReferencedAssemblies.Add(
"System.Deployment.dll");
            options.ReferencedAssemblies.Add(
"System.Xml.dll");
            options.ReferencedAssemblies.Add(
@"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Xml.Linq.dll");
            options.ReferencedAssemblies.Add(
"System.Drawing.dll");
            options.ReferencedAssemblies.Add(
"System.Windows.Forms.dll");

            options.GenerateInMemory 
= true;
            options.OutputAssembly 
= "MyTest";
            
// 开始编译
            
//CodeSnippetCompileUnit cu = new CodeSnippetCompileUnit(code);
            CompilerResults cr = p.CompileAssemblyFromFile(options, code);
posted @ 2008-07-13 20:21 薛.net 阅读(153) | 评论 (3)编辑