Questions tagged «c#»

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

9
为什么C#不实现索引属性?
我知道,我知道...埃里克·利珀特(Eric Lippert)对此类问题的回答通常类似于“,因为它不值得设计,实施,测试和记录它的成本”。 但是,我仍然希望有一个更好的解释……我正在阅读有关C#4新功能的博客文章,并且在有关COM Interop的部分中,以下部分引起了我的注意: 顺便说一句,此代码使用了另一个新功能:索引属性(仔细研究Range之后的方括号。)但是,此功能仅适用于COM互操作。您不能在C#4.0中创建自己的索引属性。 好的,但是为什么呢?我已经知道并感到遗憾,因为无法在C#中创建索引属性,但是这句话让我重新考虑了一下。我可以看到实现它的几个很好的理由: CLR支持它(例如,PropertyInfo.GetValue有一个index参数),所以很遗憾我们不能在C#中利用它 如文章所示(使用动态调度),它支持COM互操作 它在VB.NET中实现 已经可以创建索引器,即将索引应用于对象本身,因此将思想扩展到属性,保持相同的语法并仅替换this为属性名称可能没什么大不了的 这样可以写这样的东西: public class Foo { private string[] _values = new string[3]; public string Values[int index] { get { return _values[index]; } set { _values[index] = value; } } } 目前,我知道的唯一解决方法是创建一个ValuesCollection实现索引器的内部类(例如),并更改Values属性,以使其返回该内部类的实例。 这很容易做到,但是很烦人……所以也许编译器可以为我们做到!一种选择是生成实现索引器的内部类,并通过公共通用接口公开它: // interface defined in the namespace System public interface …

5
在Windows应用商店应用中获取CoreDispatcher的正确方法
我正在构建Windows应用商店应用,并且我有一些代码需要发布到UI线程中。 为此,我想检索CoreDispatcher并使用它发布代码。 看来有几种方法可以这样做: // First way Windows.ApplicationModel.Core.CoreApplication.GetCurrentView().CoreWindow.Dispatcher; // Second way Window.Current.Dispatcher; 我不知道哪一个是正确的?还是两者相等?

7
Visual Studio 2010突然看不到名称空间?
我的C#WinForms解决方案有两个项目。DLL是我正在处理的主要项目,而可执行文件WinForms则称为“ Sandbox”,这样我就可以轻松地一次编译/运行/调试DLL。 我正在两个项目的.Net 4.0中工作。 一切工作正常,直到我添加了一些看似纯真的代码,并在DLL中引用了System.Web。现在,我的沙盒项目看不到DLL项目的名称空间。我没有更改任何我认为应该会影响到此的内容。 如果我从沙盒引用中删除对DLL的项目引用,然后重新添加,则红色下划线全部消失,所有类的颜色编码都返回;等等。但是,一旦我尝试构建解决方案,整个事情就会再次崩溃。 右键单击沙箱引用中的DLL项目并在对象浏览器中查看时,我可以看到名称空间及其中的所有内容。 我感觉这可能是某种错误? 这是某种VS2010错误吗?几个月前,我遇到了同样的问题,当时只能通过制作一个新项目并重新导入文件来修复它。但是,这一次,我拥有数十亿个文件,只有在万不得已时才这样做! 编辑:恐慌地浏览并撤消了所有更改之后,试图查找引起问题的原因,似乎是这一行: string url = "http://maps.google.com?q=" + HttpUtility.UrlEncode(address); 如果我注释掉这一行,则不会出现名称空间错误,并且项目会正常运行。我看不到这行有什么毛病。

2
任务并行库替换BackgroundWorker?
任务并行库中是否有任何东西被认为是对BackgroundWorker类的替代或改进? 我有一个带有向导式UI的WinForms应用程序,它执行一些长期运行的任务。我希望能够拥有一个带有标准进度条的响应式UI,并能够取消该操作。我之前使用BackgroundWorker做到了这一点,但是我想知道是否可以使用某些TPL模式来代替?

11
Windows和.NET的Memcached
在Windows环境中,已经有人实现了供生产使用的memcached吗?因为我已经读过许多博客,所以不建议在Windows中特别是出于生产目的在Windows中运行memcached,例如在Windows上运行memcached。 还有一件事情,哪个与C#和.net 3.5一起使用的memcached客户端很好?我发现了许多替代方案,例如Memcached Providers @ Codeplex,Beitmemcached和memcached Provider @ Sourceforge

7
如何从文件中删除单个属性(例如ReadOnly)?
Наэтотвопросестьответына堆栈溢出нарусском:Удалитьодинатрибут(скажем,“толькодлячтели”“) 让说,文件具有以下属性:ReadOnly, Hidden, Archived, System。 如何仅删除一个属性?(例如ReadOnly) 如果使用以下内容,它将删除所有属性: IO.File.SetAttributes("File.txt",IO.FileAttributes.Normal)


19
无法加载文件或程序集'DotNetOpenAuth.Core
启动ASP Net MVC 4应用程序时出现以下错误: Could not load file or assembly 'DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246' or one of its dependencies. The system cannot find the file specified 这是错误日志 Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll Running under executable C:\Windows\SysWOW64\inetsrv\w3wp.exe --- A detailed error log follows. === Pre-bind state information === LOG: User = …

2
在C#中使用XDocument创建XML文件
我有一个List<string>“ sampleList”,其中包含 Data1 Data2 Data3... 文件结构就像 <file> <name filename="sample"/> <date modified =" "/> <info> <data value="Data1"/> <data value="Data2"/> <data value="Data3"/> </info> </file> 我目前正在使用XmlDocument执行此操作。 例: List<string> lst; XmlDocument XD = new XmlDocument(); XmlElement root = XD.CreateElement("file"); XmlElement nm = XD.CreateElement("name"); nm.SetAttribute("filename", "Sample"); root.AppendChild(nm); XmlElement date = XD.CreateElement("date"); date.SetAttribute("modified", DateTime.Now.ToString()); root.AppendChild(date); XmlElement …
83 c#  xml  linq-to-xml 

11
使用C#中的Bitmap对象查找图像格式
我正在加载图像文件硬盘驱动器的二进制字节,并将其加载到Bitmap对象中。如何从位图对象中找到图像类型[JPEG,PNG,BMP等]? 看起来微不足道。但是,无法弄清楚! 有替代方法吗? 感谢您的回应。 更新的正确解决方案: @CMS:感谢您的正确答复! 示例代码实现了这一点。 using (MemoryStream imageMemStream = new MemoryStream(fileData)) { using (Bitmap bitmap = new Bitmap(imageMemStream)) { ImageFormat imageFormat = bitmap.RawFormat; if (bitmap.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg)) //It's a JPEG; else if (bitmap.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png)) //It's a PNG; } }
83 c#  .net  image 

9
接口属性的XML序列化
我想对一个具有IModelObject类型的属性(这是一个接口)的对象进行XML序列化。 public class Example { public IModelObject Model { get; set; } } 当我尝试序列化此类的对象时,出现以下错误: “无法序列化Example类型的成员Example.Model,因为它是接口。” 我知道问题是接口无法序列化。但是,直到运行时才知道具体的Model对象类型。 可以将IModelObject接口替换为抽象类型或具体类型,并通过XMLInclude使用继承,但这似乎是一个丑陋的解决方法。 有什么建议么?
83 c#  .net  serialization 



3
如果发生错误,using语句会回滚数据库事务吗?
我在using语句中有一个IDbTransaction,但不确定在using语句中引发异常时是否会回滚它。我知道using语句将强制调用Dispose()...但是有人知道Rollback()是否也是如此吗? 更新:另外,我是否需要像下面一样显式调用Commit(),还是使用using语句来处理? 我的代码看起来像这样: using Microsoft.Practices.EnterpriseLibrary.Data; ... using(IDbConnection connection = DatabaseInstance.CreateConnection()) { connection.Open(); using(IDbTransaction transaction = connection.BeginTransaction()) { //Attempt to do stuff in the database //potentially throw an exception transaction.Commit(); } }

6
.NET Core 2.0上的JWT
我一直在冒险,让JWT在DotNet core 2.0上工作(现在到达今天的最终版本)。有大量的文档,但是所有的示例代码似乎都在使用不推荐使用的API,并重新引入了Core。弄清楚应该如何实现它确实令人头晕。我尝试使用Jose,但使用了app。UseJwtBearerAuthentication已被弃用,并且没有关于下一步操作的文档。 是否有人有使用dotnet core 2.0的开源项目,该项目可以简单地从授权标头解析J​​WT,并允许我授权对HS256编码的JWT令牌的请求? 下面的类没有引发任何异常,但是没有任何请求被授权,并且我也没有指出为什么它们是未经授权的。响应为空401,因此对我来说,没有任何异常,但机密不匹配。 奇怪的是,我的令牌是用HS256算法加密的,但是我看不到任何指示符可以迫使它在任何地方使用该算法。 这是我到目前为止的课程: using System; using System.Collections.Generic; using System.IO; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Net.Http.Headers; using Newtonsoft.Json.Linq; using Microsoft.IdentityModel.Tokens; using System.Text; namespace Site.Authorization { public static class SiteAuthorizationExtensions { public static IServiceCollection AddSiteAuthorization(this IServiceCollection …
83 c#  .net-core  jwt  jose 

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.