• 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交流
  • 相关阅读:
    2020.12.12【NOIP提高B组】模拟 总结
    2020.10.17【普及组】模拟赛C组 总结
    jsonp多次请求报错 not a function的解决方法
    windows phone 独立存储空间的操作(2)[转]
    Sencha Touch 2 官方文档翻译之 Intro to Applications with Sencha Touch 2(ST2应用程序简介)[转]
    windows phone xaml文件中元素及属性(10)[转]
    Sencha touch 初体验[转]
    地理坐标系与投影坐标系的区别[转]
    jquery ajax中使用jsonp的限制[转]
    windows phone小试自定义样式 (12) [转]
  • 原文地址:https://www.cnblogs.com/Jusoc/p/2984911.html
Copyright © 2020-2023  润新知