zoukankan      html  css  js  c++  java
  • C# 总结 随笔

    //////////////文件指定位置写入数据
    把字符串 "abcd "插入到test.txt文件中的第10个字节处 
    FileStream   fs=new   FileStream(@ "c:\test.txt ",Append) 
    buf=Encoding.ASCII.GetBytes( "abcd "); 
    FileStream.Seek(10,Begin); 
    FileStream.Write(buf);
    //////////////调用外部DLL时提示“无法嵌入互操作类型”
    右击引用的类库,属性
    ——双击嵌入互操作类型(改为false)即可

    //////////////全局字符集修改
    <system.web>
    <globalization   requestEncoding= "gb2312"   responseEncoding= "gb2312"  fileEncoding= "gb2312"     culture= "zh-CN"/>

      </system.web>
    //////////////.Net3.5 .Net4部署在同一网站下

    各自布置一个虚拟目录,分别指定应用程序池,
    主目录里不能有web.config
    //////////////.Net 强名称签名程序集

    项目——属性——签名——选中为程序集签名——选择强名称密钥文件——新建
    重新编译即可
    多用于作为COM组件与其他程序交互
    强名称签名的程序集如果被篡改,那么CLR在加载该程序集进行完整性验证的时候就会失败。
    但是强名称可以通过其他工具去除。

    ///////////////.Net Framework 4.5 zip压缩原生支持
    必须引用项目的 System.IO.Compression.FileSystem 程序集
    using System.IO.Compression;
    string startPath = @"c:\example\start";
    string zipPath = @"c:\example\result.zip";
    string extractPath = @"c:\example\extract";
    //压缩
    ZipFile.CreateFromDirectory(startPath, zipPath);
    //解压
    ZipFile.ExtractToDirectory(zipPath, extractPath);
    /////////////////开发64位系统中以32位运行的程序

    项目属性——生成——目标平台——选择x86

    /////////////////.Net WebService 调用url

    系统调用时WebService路径,会在dll里
    反编译dll后可以发现
    *.Properties.Settings中每个服务字符串上有一个DefaultSettingValue就是我们在Settings中设置的路径。

    更改此路径:Web项目中的WebService调用可以直接修改Web.Config中对应值。
    dll中可以用new Service().Url赋值修改。
    /////////////////64位IIS 操作Word Excel问题

    DCOM权限不够
    mmc -32 
    添加管理单元——组件服务
    进入DCOM——Microsoft Word *或{00020906-0000-0000-C000-000000000046}
    属性——安全——全部自定义,添加everyone所有权限——标识选交互式用户(不行就下列用户输入超级管理员)
    //////////////////.net 转义包含转义的字符串

    Regex.Unescape(string)
    传入字符串内容(\为实体字符):    "a\r\n\tb"
    返回字符串:    "a
        b"

    //////////////////WinForm中,给TextBox文本框增加Ctrl+A全选快捷键。 
            private void txtStatus_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.Modifiers == Keys.Control && e.KeyCode == Keys.A)
                {
                    ((TextBox)sender).SelectAll();
                }
            }
    ///////////////////C# IIS ManagementException: 访问遭到拒绝
    原理:页面(与IIS有关)运行的权限低于DLL运行的权限,估计是微软考虑到什么黑客会利用此漏洞而设计的。只要在Global里或httpModules把这个值获取就没问题。
    实时获取CPU内存情况可以在Global中每隔5秒刷新一次值。
    ////////////////////C#命令行程序中执行命令行程序并显示输出
    ProcessStartInfo start = new ProcessStartInfo("dtexec.exe");
    start.Arguments = " /F \"" + AppPath + "\\更新数据.dtsx\" /De 1";
    start.CreateNoWindow = true;//不显示dos命令行窗口
    start.RedirectStandardOutput = true;//
    start.RedirectStandardInput = true;//
    start.UseShellExecute = false;//是否指定操作系统外壳进程启动程序
    Process p = Process.Start(start);
    StreamReader reader = p.StandardOutput;//截取输出流
    string line = reader.ReadLine();//每次读取一行
    while (!reader.EndOfStream)
    {
    Console.WriteLine(line);
    line = reader.ReadLine();
    }
    p.WaitForExit();//等待程序执行完退出进程
    p.Close();//关闭进程
    reader.Close();//关闭流
    ////////////////////////VS.NET 编译出来的DLL,XML注释(Sumarry 注释)输出

    项目属性——生成——输出中选中xml文档文件——生成即可
    ///////////////////////网站报错时,自动跳转到指定报错页(error.html)的办法
    ASP.NET在web层的web.config下进行如下配置:
      当web层中的页面报错时,会自动跳转到根目录下的error.htm页面,提示用户,非常人性化。 
      <system.web>
       <customErrors mode="On" defaultRedirect="~/error.htm"></customErrors>
      </system.web>
    ////////////////////////文件下载
    WebClient client = new WebClient();
    try
    {
        client.DownloadFile(uri, savePath);
    }
    catch
    {
    }


    ////////////////////////RavenDb中的Task异步应用.Net4
    internal partial class RavenService : ServiceBase{
            private RavenDbServer server;
            private Task startTask;
            public RavenService()
            {
                    InitializeComponent();
            }
            protected override void OnStart(string[] args)
            {
                    //单独开启一个线程启动服务
                    startTask = Task.Factory.StartNew(() =>
                    {
                            try
                            {
                                    server = new RavenDbServer(new RavenConfiguration());
                            }
                            catch (Exception e)
                            {
                                    EventLog.WriteEntry("RavenDB service failed to start because of an error" + Environment.NewLine + e, EventLogEntryType.Error);
                                    Stop();
                            }
                    });
                    //等待20秒还没有启动则提示
                    if(startTask.Wait(TimeSpan.FromSeconds(20)) == false)
                    {
                            EventLog.WriteEntry(
                                    "Startup for RavenDB service seems to be taking longer than usual, moving initialization to a background thread",
                                    EventLogEntryType.Warning);
                    }
            }
            protected override void OnStop()
            {
                    //异步等待销毁服务
                    startTask.ContinueWith(task =>
                    {
                            if (server != null)
                                    server.Dispose();
                            return task;
                    }).Wait();
            }
    }

    /////////////////winform获取拖动到控件上的文件路径
    设置控件的AllowDrop=true
    在DropEnter事件中编写代码:
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
            string filePath=((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
    }


    //////////////////XMLDocument出错:要插入的节点出自不同的文档上下文  
    通过XmlDocument.ImportNode将节点先导入到当前文档中。
    xn = xd.ImprotNode(xn);
    xnP.AppendChild(xn);

    //////////////////显示注册表二进制值
    string strA = "44,00,3a,00,00,00";
    string[] arrA = strA.Split(',');
    List<byte> listB = new List<byte>();
    for (int i = 0; i < arrA.Length;i+=2 )
    {
        string strN = arrA;
        listB.Add((byte)Convert.ToInt32(strN, 16));
    }
    string strResult = Encoding.GetEncoding("GB2312").GetString(listB.ToArray());


    //////////////////byte转16进制字符串并填充两位数字
    b.ToString("X2")

    学徒帮-jQuery帮帮帮 欢迎更多的前端交流、Js交流、jQuery交流
  • 相关阅读:
    springmvc log4j 配置
    intellij idea maven springmvc 环境搭建
    spring,property not found on type
    intellij idea maven 工程生成可执行的jar
    device eth0 does not seem to be present, delaying initialization
    macos ssh host配置及免密登陆
    centos7 搭建 docker 环境
    通过rest接口获取自增id (twitter snowflake算法)
    微信小程序开发体验
    gitbook 制作 beego 参考手册
  • 原文地址:https://www.cnblogs.com/Jusoc/p/2984911.html
Copyright © 2011-2022 走看看