当前位置:  编程技术>.net/c#/asp.net
本页文章导读:
    ▪导出Excel之判断电脑中office的版本      引用空间using Microsoft.Win32;using System.IO;        public bool ExistsRegedit()        {            bool ifused = false;&.........
    ▪一个诡异的WCF问题      涉及到的技术概念 WCF,REST,AJAX,JSON遇到的问题:前台页面使用ajax请求后台rest服务,get请求没有问题,post请求时,后台接收参数总是nullrest方法属性,请求参数和返回参数都是json格式#region .........
    ▪Winform开发框架之通用定时服务管理2---如何开发定时服务应用      在上篇随笔《Winform开发框架之通用定时服务管理》介绍了我的框架体系中,通用定时服务管理模块的设计以及一些相关功能的展示。我们在做项目的时候,或多或少需要和其他外部系统或者.........

[1]导出Excel之判断电脑中office的版本
    来源:    发布时间: 2013-10-28

引用空间

using Microsoft.Win32;
using System.IO;


        public bool ExistsRegedit()
        {
            bool ifused = false;
            RegistryKey rk = Registry.LocalMachine;
            RegistryKey akey = rk.OpenSubKey(@"SOFTWARE\\Microsoft\\Office\\11.0\\Word\\InstallRoot\\");
            RegistryKey akeytwo = rk.OpenSubKey(@"SOFTWARE\\Microsoft\\Office\\12.0\\Word\\InstallRoot\\");
            //检查本机是否安装Office2003
            if (akey != null)
            {
                string file03 = akey.GetValue("Path").ToString();
                if (File.Exists(file03 + "Excel.exe"))
                {
                    ifused = true;
                }
            }
            //检查本机是否安装Office2007
            if (akeytwo != null)
            {
                string file07 = akeytwo.GetValue("Path").ToString();
                if (File.Exists(file07 + "Excel.exe"))
                {
                    ifused = true;
                }
            }
            return ifused;
        }

转 

本文链接


    
[2]一个诡异的WCF问题
    来源:    发布时间: 2013-10-28

涉及到的技术概念 WCF,REST,AJAX,JSON

遇到的问题:前台页面使用ajax请求后台rest服务,get请求没有问题,post请求时,后台接收参数总是null

rest方法属性,请求参数和返回参数都是json格式

#region 创建数据库配置
/// <summary>
/// 创建数据库配置
/// </summary>
/// <param name="connectionconfig">connectionconfig表实体</param>
/// <returns>返回受影响行数</returns>
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "CreateConnectionConfig", BodyStyle = WebMessageBodyStyle.Wrapped,RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json)]
public bool CreateConnectionConfig(ConnectionConfig connectionConfig)
{
...

}
#endregion

chome控制台的调试结果

问题表现在 connectionconfig接收值总是null

如果修改信息风格为bare 

WebMessageBodyStyle.Bare

connectionconfig不是null但是其属性是null

最终的解决方法:

将json值得connectionconfig 与rest方法的参数名称connectionConfig一致,主要是大小写一致

后台就不会出现null值

原因不详

 

本文链接


    
[3]Winform开发框架之通用定时服务管理2---如何开发定时服务应用
    来源:    发布时间: 2013-10-28

在上篇随笔《Winform开发框架之通用定时服务管理》介绍了我的框架体系中,通用定时服务管理模块的设计以及一些相关功能的展示。我们在做项目的时候,或多或少需要和其他外部系统或者接口进行数据交互,有些是单向的获取,有些是双向的操作。这个定时操作(可能是间隔的时间,也可以能是定在某一个时刻,也可以能是让它在某天某时刻运行),那么这就需要定时服务程序来管理了,通常我们把他寄宿在Windows服务里面(这也是一种最佳的方式),这种方式最好的地方,就是它的生命周期可以随着电脑的启动而启动,而且很少需要用户干预。

1、通用定时服务管理模块框架设计

首先我们回顾一下上面文章对通用定时服务管理模块的设计思路。

整个定时服务的插件设计框架如下所示。

Windows定时服务-文件视图如下所示:

 

 

2、如何进行定时服务应用的开发

虽然看起来还是有那么几个文件,其实由于是整个框架是基于插件式的架构,因此但我们开发定时服务应用的时候(如最底下的有黑框的部分),只需要引用插件模块WHC.MyTimingPlugIn.dll并实现ITimingPlugIn接口即可,如上面的WarningService.dll就是一个典型的例子。

这个WarningService项目就是一个很好的测试例子,它只有一个类,类实现接口ITimingPlugIn。

public class TestService : ITimingPlugIn
{
#region ITimingPlugIn 成员

/// <summary>
/// 操作进度状态事件
/// </summary>
public event ProgressChangedEventHandler ProgressChanged;

public bool Excute()
{
Thread.Sleep(1000);
if (ProgressChanged != null)
{
ProgressChanged(this, new ProgressChangedEventArgs(20, "操作进行中...20%"));
}

//实际工作处理1

Thread.Sleep(1000);
if (ProgressChanged != null)
{
ProgressChanged(this, new ProgressChangedEventArgs(50, "操作进行中...50%"));
}

//实际工作处理2

Thread.Sleep(1000);
if (ProgressChanged != null)
{
ProgressChanged(this, new ProgressChangedEventArgs(80, "操作进行中...80%"));
}

//实际工作处理3:输出内容,作为处理的记录
LogTextHelper.WriteLine(string.Format("{0}......{1}", this.Name, DateTime.Now));
Thread.Sleep(1000);

if (ProgressChanged != null)
{
ProgressChanged(this, new ProgressChangedEventArgs(100, "操作完成"));
}

return true;
}

/// <summary>
/// 插件程序名称
/// </summary>
public string Name
{
get;
set;
}

/// <summary>
/// 插件详细配置
/// </summary>
public PlugInSetting Setting
{
get;
set;
}

#endregion
}

 

开发编译通过后,我们需要为该定时服务应用,在插件XML配置上增加一个这样的说明,让服务程序能够正常加载并识别。

<?xml version="1.0"?>
<ArrayOfPlugInSetting>
<PlugInSetting>
<!--插件程序名称-->
<Name>测试名称</Name>
<!--插件描述内容-->
<Description>测试描述</Description>
<!--运行同步服务的间隔时间(单位:分钟)-->
<ServiceCycleMinutes>
    
最新技术文章:
▪C#通过IComparable实现ListT.sort()排序
▪C#实现对Json字符串处理实例
▪Winform实现抓取web页面内容的方法
▪Winform实现将网页生成图片的方法
▪C#控制台程序中处理2个关闭事件的代码实例
▪WinForm实现同时让两个窗体有激活效果的特效...
▪WinForm实现拦截窗体上各个部位的点击特效实...
▪用C#的params关键字实现方法形参个数可变示例
▪C#判断某程序是否运行的方法
▪C#验证码识别基础方法实例分析
▪C#通过WIN32 API实现嵌入程序窗体
▪C#实现获取鼠标句柄的方法
▪C#事件处理和委托event delegate实例简述
▪C#获取程序文件相关信息的方法
▪C#中的除法运算符与VB.NET中的除法运算符
▪ASP.NET MVC 5使用X.PagedList.Mvc进行分页教程(PagedLi...
▪Base64编码解码原理及C#编程实例
▪C#实现的优酷真实视频地址解析功能(2014新算...
▪C#和SQL实现的字符串相似度计算代码分享
▪C#使用Word中的内置对话框实例
▪C#反射之基础应用实例总结
▪C#生成单页静态页简单实例
▪C#实现SMTP邮件发送程序实例
▪C#实现随鼠标移动窗体实例
▪C#使用GDI+创建缩略图实例
▪C#实现通过模板自动创建Word文档的方法
▪C#中Response.Write常见问题汇总
▪C#中多态、重载、重写区别分析
▪WinFrom中label背景透明的实现方法
▪C#中out保留字用法实例分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3