小编Fai*_*oor的帖子

跟踪C#中的所有对象引用

在Visual Studio中进行调试时,是否可以列出对象的所有引用.我正在使用C#.我正在寻找类似GC在垃圾收集过程中所做的事情.

c# reference object visual-studio

15
推荐指数
1
解决办法
9064
查看次数

如何将AES初始化Vector传递给客户端以实现混合密码系统

我需要为客户端 - 服务器通信实现安全性.我已经实现了以下混合密码系统

为了加密在混合密码系统中发送给Alice的消息,Bob执行以下操作:

  1. 获得Alice的公钥.
  2. 为数据封装方案生成新的对称密钥.
  3. 使用刚刚生成的对称密钥在数据封装方案下加密消息.
  4. 使用Alice的公钥加密密钥封装方案下的对称密钥.
  5. 将这两种加密发送给Alice.

为了解密这个混合密文,Alice执行以下操作:

  1. 使用她的私钥来解密密钥封装段中包含的对称密钥.
  2. 使用此对称密钥来解密数据封装段中包含的消息.

我使用RSA用于公钥密码系统,AES用于对称密钥密码系统.每件事都很好,但我不知道如何处理AES初始化向量.目前,我正在连接AES密钥和初始化向量,用公钥加密它并将其发送到服务器.

我只想对这种方法有所了解.如何通过其他通信协议SSL等解决此问题

谢谢.

encryption rsa aes public-key private-key

9
推荐指数
1
解决办法
7720
查看次数

SignalR与gzip压缩

在为asp.net网站托管的集线器开发SignalR客户端时遇到了一些问题,启用了gzip压缩.由于我们使用的是IIS压缩,SignalR的响应也会被压缩,但是,客户端不理解响应,我们在客户端获得了Json解析错误.

SignalR内部用于HttpWebRequest发出http请求,并且HttpWebRequest可以配置为使用AutomaticDecompression属性自动解压缩响应.因此,如果以某种方式我可以获取HttpWebRequestSignalR用来发出请求的对象,我应该能够设置启用自动解压缩.

我想我应该能够获得访问HttpWebRequest通过提供HubConnection.Start与我的自定义实现IHttpClient,IHttpClient.GetAsync需要一个prepareRequest我认为应该给我访问的动作HttpWebRequest,但是,HttpHelper.GetAsync包装了HttpWebRequestHttpWebRequestWrapper传递之前prepareRequestHttpWebRequestWrapper没有提供访问HttpWebRequest.

HttpHelper class是内部的,所以也不能使用它,因此,我不确定如何使用SignalR启用自动解压缩.

我可以公开HttpWebRequestin HttpWebRequestWrapper,但是,如果存在,则更喜欢更简单的解决方案.任何一个人?

我使用的是SignalR版本0.5.1.10822

我的自动解压缩HttpClient:

public class HttpClientWithAutoDecompression : IHttpClient
{
    readonly DefaultHttpClient _httpClient = new DefaultHttpClient();

    private readonly DecompressionMethods _decompressionMethods;
    public HttpClientWithAutoDecompression(DecompressionMethods decompressionMethods)
    {
        _decompressionMethods = decompressionMethods;
    }

    public Task<IResponse> GetAsync(string url, Action<IRequest> prepareRequest)
    {
        Task<IResponse> task = _httpClient.GetAsync(url, 
            request …
Run Code Online (Sandbox Code Playgroud)

signalr

7
推荐指数
1
解决办法
4513
查看次数

在C#中抛出异常后返回语句

Systems.Collections.Generic.Dictionary类的以下函数在抛出异常后有返回语句,有没有人知道为什么?

    public TValue this[TKey key] {
        get { 
            int i = FindEntry(key);
            if (i >= 0) return entries[i].value;
            ThrowHelper.ThrowKeyNotFoundException();
            **return default(TValue);** 
        }
        set { 
            Insert(key, value, false); 
        }
    } 
Run Code Online (Sandbox Code Playgroud)

c# dictionary

6
推荐指数
1
解决办法
1460
查看次数

程序集文件重命名和Assembly.LoadFile

所以情况如下:

我有一个名为Lib1.dll的程序集.出于某种原因(与问题无关)我不得不将程序集文件名重命名为Lib1New.dll,现在尝试使用Assembly.LoadFile加载重命名的程序集时,我注意到CLR也尝试加载Lib1.dll.

如果在搜索路径中找到Lib1.dll,它将被加载到地址空间中.无论是否找到Lib1.dll,该应用程序都能正常运行.(问题是如果发现Lib1.dll文件被锁定,其他进程无法删除).

在此输入图像描述

我不明白为什么LoadFile搜索并加载Lib1.dll.LoadFile应该在指定位置加载程序集文件的内容,为什么它在搜索文件.

LoadFile的MSDN文档:

使用LoadFile方法加载和检查具有相同标识但位于不同路径的程序集.LoadFile不会将文件加载到LoadFrom上下文中,也不会像LoadFrom方法那样使用加载路径解析依赖关系.LoadFile在这种有限的场景中很有用,因为LoadFrom不能用于加载具有相同标识但路径不同的程序集; 它只会加载第一个这样的组件.

c# clr file-io .net-assembly

5
推荐指数
1
解决办法
2164
查看次数

C#项目的编译器命令行

Visual Studio在项目属性 - > C/C++ - >命令行和链接器 - >命令行下显示编译器和链接C++项目的确切命令行,但是,我无法找到C#项目的类似属性页.

有没有人知道找出用于编译C#项目的csc.exe命令行参数的最佳方法是什么

.net c# csc

3
推荐指数
1
解决办法
6856
查看次数

Swiz要求弱封装

我刚开始使用Swiz,看起来Swiz强迫你创建具有弱封装的类.Swiz要求所有事件处理程序都是公开的,以便调解事件.

假设组件"A"调度了一些事件,我想在组件"B"中监听这些事件.传统上,我只是在'B'中的'A'上添加事件监听器,并且'B'中的所有事件处理程序都可以保持私有.但是,如果我正在使用Swiz,我需要制作所有处理程序,调解事件,公开.

我在这里遗漏了什么,有没有办法绕过这个问题.我真的,不想污染我班级的公共界面.

谢谢.

apache-flex frameworks encapsulation actionscript-3 swiz

1
推荐指数
1
解决办法
477
查看次数