小编Pho*_*nix的帖子

数组格式奇怪的字符串

我有这个字符串:

string s = "[\"default\",\"direct\"]";
Run Code Online (Sandbox Code Playgroud)

我想创建一个数组,所以最后的数组应该是这样的:

["default", "direct"]
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

string[] ss = s.Split(',');
Run Code Online (Sandbox Code Playgroud)

但结果是:

在此输入图像描述

c#

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

为什么 Alt 键不会触发我的低级键盘挂钩?

我正在试验键盘钩子,似乎Alt键(以及其他命令键)没有被钩住,我不知道为什么?

下面是带有一些调试代码的键盘钩子,它打印出 vkCode、scanCode 和 lpChar 读数。

它的工作原理,基本上全键,但不AltCtrl

function LowLevelKeybdHookProc(nCode, wParam, lParam : integer) : integer; stdcall;
// possible wParam values: WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, WM_SYSKEYUP
var info : ^KeybdLLHookStruct absolute lParam;
    lpChar : word;
    kState : TKeyboardState;

begin
result := CallNextHookEx(kHook, nCode, wParam, lParam);
with info^ do
  case WParam of
    WM_KEYDOWN : begin
      GetKeyboardState(kState);

      Form1.Memo1.Text:=Form1.Memo1.Text+'vkCode: '+inttostr(vkCode)+
             ' scanCode: '+inttostr(scanCode)+
             ' lpChar: '+inttostr(lpChar)+;
    end;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

delphi keyboard hook winapi

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

REstful POST:要写入流的字节超过指定的Content-Length字节大小

抛出此错误

Bytes to be written to the stream exceed 
the Content-Length bytes size specified. 
Run Code Online (Sandbox Code Playgroud)

当我运行以下代码时:

var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = Encoding.UTF8.GetByteCount(json);
using (var webStream = request.GetRequestStream())
using (var requestWriter = new StreamWriter(webStream, System.Text.Encoding.UTF8))
{
    requestWriter.Write(json);
}
Run Code Online (Sandbox Code Playgroud)

我读过,当Method是HEAD或GET时可能会发生错误,但这里是POST.

知道那里有什么问题吗?

c# rest stream

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

如何在单例类上使用Moq,以便我们只能测试业务逻辑并忽略日志记录

 public class SLogger
 {
     private const string SSchemasFileName = "sSchemas";
     private const string SLogsFileName = "sLogs";

     private static string logsDir = @"D:\Data\logs\local\";
     private static readonly Lazy<SLogger> instance = new Lazy<SLogger>(() => new SLogger());

     private ESC eSC;
     private AEL aEL;

     private SllLogger()
     {
         eSC= new ESC(logsDir , SSchemasFileName);
         aEL= new AEL(logsDir , SLogsFileName, EventLevel.Verbose);
     }

     public static SLogger Instance
     {
         get
         {
             return instance.Value;
         }
     }

     public void LogInformation()
     {
         // Some logic here
     }
}
Run Code Online (Sandbox Code Playgroud)

如何使用Moq框架来测试业务逻辑并忽略日志库代码?

例如,如果我有一些类具有如下所示的方法,并且我想使用Moq框架或任何其他框架对此方法进行单元测试,那么我如何才能使用这个单例类?

还有其他办法吗?

void foo() …
Run Code Online (Sandbox Code Playgroud)

.net c# singleton unit-testing moq

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

如何在c#中发生catch错误时跳过下一行执行?

在一个函数中,我有几个try - catch块,如:

private void button1_click()
{
   try
   {
      // Lines of code
   }
   catch
   {
      // Lines of code
   }

   try
   {
      // Lines of code
   }
   catch
   {
      // Lines of code
   }
}
Run Code Online (Sandbox Code Playgroud)

如果catch块中的任何错误发生第一次捕获,我不希望下一行代码执行.

如何在第一次捕获错误时跳过下一个try块语句?

c# visual-studio-2010 winforms

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