升级到VS 2017后,我从此代码中得到以下错误(一直运行良好)
byte[] HexStringToByteArray(string hex)
{
if (hex.Length % 2 == 1)
throw new Exception("The binary key cannot have an odd number of digits");
byte[] arr = new byte[hex.Length >> 1];
for (int i = 0; i < hex.Length >> 1; ++i) // Error in this line
{
arr[i] = (byte)((GetHexVal(hex[i << 1]) << 4) + (GetHexVal(hex[(i << 1) + 1])));
}
return arr;
}
Run Code Online (Sandbox Code Playgroud)
例外:
Error 1: The variable 'i' cannot be used with type arguments
Error 2: 'hex' …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用纯.net代码来创建证书请求,并根据我可用的现有CA证书(在Windows证书存储区中或作为单独的文件)从证书请求创建证书.
我知道我有类X509Certificate和X509Certificate2可供加载证书并访问他们的信息,但我没有看到中的任何类或功能System.Security.Cryptography,可以用来创建证书请求或签署这样的证书请求创建命名空间新签名证书.
虽然关于System.Security.Cryptography.Pkcs命名空间的文档说:
System.Security.Cryptography.Pkcs命名空间提供公钥加密标准(PKCS)的编程元素,包括签名数据,交换密钥,请求证书,公钥加密和解密以及其他安全功能的方法.
那么,如何创建证书请求并使用纯.net类来签署该请求以创建新的X509证书System.Security.Cryptography?
注意:
C#使用这样的字符串'dd MMMM yyyy HH:mm'来定义应该显示日期和时间的格式.
在那相当于momentjs是'DD MMMM YYYY HH:mm'.
是否有某些功能可以将一种格式定义转换为另一种格式定义,而不管格式说明符源格式包含哪些(合法)组合?
基本上我想要的是:
function toMomentJsFormatDefinition(cSharpFormatDefinition) {
// should convert all format strings described here https://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx
}
console.log(toMomentJsFormatDefinition('dd MMMM yyyy HH:mm'));
// outputs DD MMMM YYYY HH:mm
Run Code Online (Sandbox Code Playgroud)
理想情况下toMomentJsFormatDefinition应该在我已经编写并经过良好测试的一些库中定义,我将在我的项目中使用它.
我在我的Web应用程序中使用了pdfjs查看器,它附带了所有这些bcmap文件.我追踪了网络流量,并没有被要求.
我真的不想将这些文件添加到版本控制或问题跟踪系统b/c,如果不需要这些文件那么多.
什么是bcmap文件?
我正在写一段时间的代码.我写下面的代码,但想设置我的默认时区是巴基斯坦+5.
<?php
date_default_timezone_set("America/New_York");
echo "The time is " . date("h:i:sa");
?>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我有一个ASP.NET MVC网站,它正在调用Web API Web服务.
这些调用正在运行并返回200 OK - 两者都调用本地计算机上的Web服务和Web服务器上的Web服务.
我有Fiddler运行,但它没有看到这些调用 - 只调用MVC网站(反过来调用Web服务).
如何查看实际的Web服务调用?
这应该是正常的吗?特别是对基于Web的Web服务.
我已停止引用http://localhost并使用MACHINENAME - 正如某些SO帖子中所建议的那样.但这没有用.
我正在使用HttpClient来调用它:
using (var client = new HttpClient())
{
var byteArray = Encoding.ASCII.GetBytes(username + ":" + password);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
client.BaseAddress = new Uri("http://MACHINENAME");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PutAsJsonAsync("api/path", custImp);
}
Run Code Online (Sandbox Code Playgroud)
如何在Fiddler中查看Web服务调用?
我有一个在我的机器上正确打印的表单但是当我在另一台机器上部署该应用程序时,该表单不适合页面,并且桌面背景出现在打印文档上.两台机器之间的主要区别在于其中一台DPI设置为150%.我已多次更改自动缩放但没有任何变化.表单在屏幕上看起来不错,但是打印不正确.以下是我正在使用的代码.
private void btnPrint_Click(object sender, EventArgs e)
{
CaptureScreen();
printPreviewDialog1.Document = printDocument1;
printPreviewDialog1.ShowDialog();
}
Bitmap memoryImage;
private void CaptureScreen()
{
Graphics myGraphics = this.CreateGraphics();
Size s = this.Size;
memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
Graphics memoryGraphics = Graphics.FromImage(memoryImage);
memoryGraphics.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, s);
}
private void printDocument1_PrintPage(System.Object sender,
System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(memoryImage, 0, 0);
}
Run Code Online (Sandbox Code Playgroud) 有没有办法为TCanvas.LineTo方法设置lineends的样式?它似乎默认为圆形末端,当Pen.Width设置为较大的值(例如9)时,对于不同颜色的行中的几行看起来非常糟糕.
它看起来像这样(圆形末端):
********........******
**********........******
**********........******
********........******
Run Code Online (Sandbox Code Playgroud)
(其中*是例如蓝色,而.是黄色)
如果在中线之后绘制两条外线,情况会更糟:
********........******
**********......********
**********......********
********........******
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像这样(streight结束):
********........******
********........******
********........******
********........******
Run Code Online (Sandbox Code Playgroud)
Pen似乎没有为此提供任何设置,LineTo方法也没有.可能有我可以调用的Windows API函数吗?
当C#6到达时,我刚刚引用了Microsoft.Net.Compilers NuGet包,并且TFS版本的C#6功能立即开始工作,而无需在构建机器上安装其他依赖项.
现在C#7在这里是否有一个等效的NuGet包可以做同样的事情?(或者这不是推荐采用C#7的方式吗?)
Microsoft.Net.Compilers包的描述确实说它"导致使用包中包含的特定版本的C#[...]编译器构建项目",但是我找不到相应的C#编译器版本适用于给定的NuGet包.我已经尝试添加最新的稳定版本(1.3.2),但是C#7的功能没有编译(而且这个软件包大概还要6个月左右,所以我真的没想到它会工作)
我开始看到这些陈述,我试图围绕这些陈述.
if (obj is SomeAuto car)
{
//Do stuff
}
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,我们基本上将obj转换为变量汽车,这将是一个类型"SomeAuto"?
1)本声明的官方术语是什么?
2)如果我想将if语句更改为因特定原因有条件执行会发生什么?
例如,说SomeAuto是一个基类,我只想要某种类型的汽车,或者说我想要所有的SomeAuto,除了可能是一种特殊类型.