Questions tagged «c#»

C#(发音为“ See Sharp”)是由Microsoft开发的一种高级,静态类型的多范例编程语言。C#代码通常针对Microsoft的.NET系列工具和运行时,其中包括.NET Framework,.NET Core和Xamarin。使用此标记可解决有关用C#或C#正式规范编写的代码的问题。

8
手动创建委托与使用Action / Func委托
今天,我正在考虑声明以下内容: private delegate double ChangeListAction(string param1, int number); 但是为什么不使用这个: private Func<string, int, double> ChangeListAction; 或者如果ChangeListAction没有返回值,我可以使用: private Action<string,int> ChangeListAction; 那么用delegate关键字声明委托的好处在哪里? 是因为.NET 1.1,随着.NET 2.0的出现Action<T>,还是随着.NET 3.5的出现Func<T>?
71 c#  delegates  action  func 

12
如何显示DisplayAttribute.Description属性值?
我有一个模型类,具有这样的属性: [Display(Name = "Phone", Description="Hello World!")] public string Phone1 { get; set; } 在我的视图中显示标签并渲染文本框以供输入非常简单: @Html.LabelFor(model => model.Organization.Phone1) @Html.EditorFor(model => model.Organization.Phone1) @Html.ValidationMessageFor(model => model.Organization.Phone1) 但是,如何渲染Description注释属性的值,即“ Hello World!”?

3
图片从网址到字节数组
我有一个带有图像的超链接。 我需要从该超链接读取/加载图像,并将其分配给byte[]C#中的字节数组()。 谢谢。
71 c# 

5
您如何调试MVC 4 API路由?
我有一个使用RESTsharp与我的MVC4 RESTful服务器通信的WP7游戏,但是我经常遇到使请求正常工作的问题,因此我想调试失败的地方。 这是一个示例,其中我的ConstructorGameController被命中,但是该Post方法未命中,我不明白为什么。 客户代码: public void JoinRandomGame() { client = new RestClient { CookieContainer = new CookieContainer(), BaseUrl = "http://localhost:21688/api/", }; client.Authenticator = GetAuth(); RestRequest request = new RestRequest(Method.POST) { RequestFormat = DataFormat.Json, Resource = "game/" }; client.PostAsync(request, (response, ds) => {}); } 服务器代码: public void Post(int id) { if …

15
将双数取整为x个有效数字
如果我有一个双精度(234.004223)等,我想在C#中将其四舍五入为x个有效数字。 到目前为止,我只能找到四舍五入到小数点后x位的方法,但是如果数字中有任何0,这只会删除精度。 例如,0.086到小数点后一位变为0.1,但我希望它保持在0.08。


8
如何使数据绑定类型安全并支持重构?
当我希望将控件绑定到对象的属性时,必须提供属性名称作为字符串。这不是很好,因为: 如果该属性被删除或重命名,那么我不会收到编译器警告。 如果使用重构工具重命名该属性,则很可能不会更新数据绑定。 如果属性的类型错误,例如将整数绑定到日期选择器,那么直到运行时我都不会出错。 是否有一种设计模式可以解决此问题,但仍易于使用数据绑定? (这是WinForms,ASP.NET和WPF以及其他系统中的问题。) 现在,我发现“ C#中的nameof()运算符的变通办法:typesafe数据绑定”也为解决方案提供了良好的起点。 如果您愿意在编译代码后使用后处理器,那么NotifyPropertyWeaver值得一看。 当绑定是用XML而不是C#完成时,有人知道WPF的一种好的解决方案吗?

10
Mono https webrequest失败,并显示“身份验证或解密失败”
我正在制作一个简单的REST客户端以在我的C#应用​​程序中使用。在Windows的.net中,它与http://和https://连接一起使用时效果很好。在Ubuntu 10.10上的Mono 2.6.7中(也用2.8测试了相同的结果),只有http://可以工作。https://连接在request.GetResponse()方法上引发此异常: Unhandled Exception: System.Net.WebException: Error getting response stream (Write: The authentication or decryption has failed.): SendFailure ---> System.IO.IOException: The authentication or decryption has failed. ---> Mono.Security.Protocol.Tls.TlsException: Invalid certificate received from server. Error code: 0xffffffff800b010a at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates (Mono.Security.X509.X509CertificateCollection certificates) [0x00000] in <filename unknown>:0 at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1 () [0x00000] in <filename …
71 c#  https  mono  webrequest 

3
如何根据新的安全策略在.Net中发送电子邮件?
为了更好地保护您的用户,GMail和其他邮件提供商建议将我们所有的应用程序升级到OAuth 2.0。 我是对的,这意味着它System.Net.Mail不再工作了,我们需要使用另一个库MailKit吗? 总的来说,我试图了解如何在不允许“访问不太安全的应用程序”的情况下发送电子邮件? 因为我有System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required.当smtpClient.Send(message);执行。 如果要解决这个问题的唯一方法是使用MailKit,我觉得这个问题将是一个很好的实际步骤一步转换教程从System.Net.Mail使用MailKit和Google.Apis.Auth.OAuth2。我不知道一般的解决方案将使用DotNetOpenAuth? 我的应用程序中包含以下类,用于将电子邮件发送到任何地址(gmail,yandex和其他地址): public class EmailSender { public void SendEmail(SmtpServerSettings serverSettings, SendEmailRequest emailRequest) { // Usually I have 587 port, SmtpServerName = smtp.gmail.com _logger.Trace("Sending message with …
71 c#  .net 

8
如何从网址字符串中删除端口号
我有以下代码片段: string tmp = String.Format("<SCRIPT FOR='window' EVENT='onload' LANGUAGE='JavaScript'>javascript:window.open('{0}');</SCRIPT>", url); ClientScript.RegisterClientScriptBlock(this.GetType(), "NewWindow", tmp); 此代码生成的URL包括端口号,我认为这是由于网站使用了端口80而引起的,在此代码中,我试图从网站的虚拟目录中加载页面。关于如何隐藏此代码生成的URL字符串中的端口号的任何想法?
71 c#  asp.net 

3
在HttpClient中解压缩之前是否可以访问压缩数据?
我正在使用Google Cloud Storage .NET客户端库。有三种功能(.NET,我的客户端库和存储服务之间)以不愉快的方式结合在一起: 下载文件(Google Cloud Storage术语中的对象)时,服务器会包含已存储数据的哈希值。然后,我的客户代码会根据下载的数据来验证该哈希。 Google云端存储的另一个功能是,用户可以设置对象的Content-Encoding,并且当请求包含匹配的Accept-Encoding时,该对象将作为下载的标头包含在内。(目前,让我们忽略请求中不包含的行为...) HttpClientHandler 可以自动透明地解压缩gzip(或压缩)内容。 当所有这三个结合在一起时,我们就会遇到麻烦。这是一个简短但完整的程序,演示了这一点,但是没有使用我的客户端库(并且没有访问可公开访问的文件): using System; using System.Linq; using System.Net; using System.Net.Http; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; class Program { static async Task Main() { string url = "https://www.googleapis.com/download/storage/v1/b/" + "storage-library-test-bucket/o/gzipped-text.txt?alt=media"; var handler = new HttpClientHandler { AutomaticDecompression = DecompressionMethods.GZip }; var …

19
尝试确定承载您的应用程序的dotnet.exe的进程ID时发生错误。发生一个或多个错误
我已经从源URL克隆了项目。我的朋友使用.NetCore 1.0.0-preview2-003121 sdk开发了asp.net核心Web应用程序。但是,在我的电脑上,我已经安装了.NetCore 1.0.1-preview2-003131 sdk。我得到了错误。我在global.json文件中更改了版本,如下所示,但仍然没有解决方案。我用google对其搜索,但所有解决方案均不适用于我。 Global.json文件 { "projects": [ "src", "test" ], "sdk": { "version": "1.0.0-preview2-003131" } } Project.json { "userSecretsId": "aspnet-FMM-02f339eb-4af7-42c9-b7f3-d05b48d36811", "dependencies": { "Microsoft.NETCore.App": { "version": "1.0.0", "type": "platform" }, "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0", "Microsoft.AspNetCore.Diagnostics": "1.0.0", "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0", "Microsoft.AspNetCore.Mvc": "1.0.0", "Microsoft.AspNetCore.Razor.Tools": { "version": "1.0.0-preview2-final", "type": "build" }, "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", …

11
文件大小格式提供者
有没有简单的方法来创建使用IFormatProvider的类,该类写出用户友好的文件大小? public static string GetFileSizeString(string filePath) { FileInfo info = new FileInfo(@"c:\windows\notepad.exe"); long size = info.Length; string sizeString = size.ToString(FileSizeFormatProvider); // This is where the class does its magic... } 它应导致字符串格式设置为“ 2,5 MB ”,“ 3,9 GB ”,“ 670字节”等。

5
DateTime.TryParseExact()拒绝有效格式
我正在解析ASP.NET WebForms页面中的DateTime值,并且日期字符串始终被该DateTime.TryParseExact()方法拒绝,即使它显然与提供的格式字符串之一匹配也是如此。 它似乎在我的开发机器上无法正常运行,但可以在生产服务器上工作,因此我正在考虑涉及本地日期设置,但是即使将IFormatProvider (CultureInfo)对象作为参数提供,也会发生此错误 这是代码: DateTime startDate; string[] formats = { "dd/MM/yyyy", "dd/M/yyyy", "d/M/yyyy", "d/MM/yyyy", "dd/MM/yy", "dd/M/yy", "d/M/yy", "d/MM/yy"}; var errStart = row.FindControl("errStartDate"); //my date format error message if (!DateTime.TryParseExact(txtStartDate.Text, formats, null, DateTimeStyles.None, out startDate)) { errStart.Visible = true; //we get here even with a string like "20/08/2012" return false; …
71 c#  .net  cultureinfo 

4
RNGCryptoServiceProvider的优缺点
什么是使用的利弊System.Security.Cryptography.RNGCryptoServiceProviderVS System.Random。我知道这RNGCryptoServiceProvider是“更加随机的”,即对于黑客来说更难以预测。还有其他优点或缺点吗? 更新: 根据回应,以下是目前使用的利弊RNGCryptoServiceProvider: 优点 RNGCryptoServiceProvider 是一个更强的密码随机数,这意味着确定加密密钥等会更好。 缺点 Random更快,因为它是一个更简单的计算;当用于不要求加密随机性的模拟或长时间计算时,应使用此方法。注意:有关模拟的详细信息,请参见Kevin的答案-Random不一定足够随机,您可能要使用其他非加密PRNG。
71 c#  .net  random 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.