Questions tagged «c#»

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

9
检测是否以具有或没有提升特权的管理员身份运行?
我有一个应用程序,需要检测它是否正在以提升的特权运行。我目前有这样的代码设置: static bool IsAdministrator() { WindowsIdentity identity = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new WindowsPrincipal(identity); return principal.IsInRole (WindowsBuiltInRole.Administrator); } 这可以检测用户是否是管理员,但是如果以没有提升权限的管理员身份运行则无法使用。(例如,在vshost.exe中)。 如何确定高程是否已经生效?

9
使用ASP.NET Core获取绝对URL
在MVC 5中,我具有以下扩展方法来生成绝对URL,而不是相对的: public static class UrlHelperExtensions { public static string AbsoluteAction( this UrlHelper url, string actionName, string controllerName, object routeValues = null) { string scheme = url.RequestContext.HttpContext.Request.Url.Scheme; return url.Action(actionName, controllerName, routeValues, scheme); } public static string AbsoluteContent( this UrlHelper url, string contentPath) { return new Uri(url.RequestContext.HttpContext.Request.Url, url.Content(contentPath)).ToString(); } public static …
82 c#  asp.net-core 

9
如何处理名称长度超过259个字符的文件?
我正在开发一个应用程序,该应用程序遍历某些目录中的每个文件,并对这些文件执行一些操作。除其他外,我必须检索文件大小和修改此文件的日期。 某些文件全名(目录+文件名)太长,我无法使用.NET Framework FileInfo,它被限制为MAX_PATH(260个字符)。许多Web来源建议通过P / Invoke使用本机Win32函数来访问名称过长的文件。 当前,Win32函数似乎会出现完全相同的问题。例如对于GetFileAttributesEx(270字节)的路径(kernel32.dll)失败,并出现Win32错误3 ERROR_PATH_NOT_FOUND。 可以从Notepad2中成功打开相同的文件,并使用Windows资源管理器成功显示该文件(但由于259个字符的限制¹,例如Visual Studio 2010无法打开它)。 文件路径为270个字符长时,我该怎么办才能访问文件? 笔记: 删除或忽略文件路径长度超过259个字符的文件不是解决方案。 我仅在寻找与Unicode兼容的解决方案。 该应用程序将在安装了.NET Framework 4的Windows 2008 / Vista或更高版本下运行。 ¹令人惊讶的是,Microsoft Word 2007失败,抱怨没有软盘驱动器的计算机上的“软盘太小”,或者当剩余4 GB RAM时抱怨“ RAM内存不足”,或者最后是“需要更新防病毒软件”。他们是否会停止一天至少在诸如Microsoft Office之类的关键产品中显示如此愚蠢的毫无意义的错误?

15
如何在WebBrowser控件中注入Javascript?
我已经试过了: string newScript = textBox1.Text; HtmlElement head = browserCtrl.Document.GetElementsByTagName("head")[0]; HtmlElement scriptEl = browserCtrl.Document.CreateElement("script"); lblStatus.Text = scriptEl.GetType().ToString(); scriptEl.SetAttribute("type", "text/javascript"); head.AppendChild(scriptEl); scriptEl.InnerHtml = "function sayHello() { alert('hello') }"; scriptEl.InnerHtml和scriptEl.InnerText都给出错误: System.NotSupportedException: Property is not supported on this type of HtmlElement. at System.Windows.Forms.HtmlElement.set_InnerHtml(String value) at SForceApp.Form1.button1_Click(Object sender, EventArgs e) in d:\jsight\installs\SForceApp\SForceApp\Form1.cs:line 31 at System.Windows.Forms.Control.OnClick(EventArgs …



7
如何实施密码重置?
我正在开发ASP.NET中的应用程序,并且特别想知道Password Reset如果我想自己动手实现该功能。 具体来说,我有以下问题: 生成难以破解的唯一ID的好方法是什么? 应该附有计时器吗?如果是这样,应该持续多久? 我应该记录IP地址吗?有关系吗 在“密码重置”屏幕下,我需要什么信息?只是电子邮件地址?还是电子邮件地址以及他们“知道”的一些信息?(最喜欢的团队,小狗的名字等) 我还有其他需要注意的事项吗? 注意:其他问题完全掩盖了技术实施。实际上,公认的答案掩盖了血腥的细节。我希望这个问题和随后的答案会深入到细节中,我希望通过更狭义地表述这个问题,使答案不再那么“蓬松”,而更多的是“刺痛”。 编辑:答案也将进入如何在SQL Server或任何答案的ASP.NET MVC链接中建模和处理这种表的方式。

4
与ObjectContext相比,为什么在EF 4.1中插入实体这么慢?
基本上,我在一个事务中插入35000个对象: using(var uow = new MyContext()){ for(int i = 1; i < 35000; i++) { var o = new MyObject()...; uow.MySet.Add(o); } uow.SaveChanges(); } 这需要永远!如果我使用基础ObjectContext(通过使用IObjectAdapter),它仍然很慢,但大约需要20秒。似乎DbSet<>正在执行一些线性搜索,这需要花费大量时间... 还有其他人看到这个问题吗?


5
正确的方式加载程序集,查找类并调用Run()方法
示例控制台程序。 class Program { static void Main(string[] args) { // ... code to build dll ... not written yet ... Assembly assembly = Assembly.LoadFile(@"C:\dyn.dll"); // don't know what or how to cast here // looking for a better way to do next 3 lines IRunnable r = assembly.CreateInstance("TestRunner"); if (r …
81 c#  .net  reflection 

4
Linq-SelectMany混乱
据我从SelectMany的文档中了解到的,可以用它来产生一个(平整的)一对多关系的序列。 我有以下课程 public class Customer { public int Id { get; set; } public string Name { get; set; } } class Order { public int Id { get; set; } public int CustomerId { get; set; } public string Description { get; set; } } 然后,我尝试使用查询表达式语法使用它们,如下所示 var customers = …

9
如何在ASP.NET中实现GZip压缩?
我正在尝试为我的asp.net页(包括CSS和JS文件)实施GZip压缩。我尝试了以下代码,但它仅压缩我的.aspx页(从YSlow找到) HttpContext context = HttpContext.Current; context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress); HttpContext.Current.Response.AppendHeader("Content-encoding", "gzip"); HttpContext.Current.Response.Cache.VaryByHeaders["Accept-encoding"] = true; 上面的代码仅压缩我的.aspx页面代码(标记),而不压缩作为外部文件包含的CSS和JS文件。请告诉我如何使用代码在ASP.NET中实现GZip压缩(因为我位于共享主机服务器上,而我无法访问IIS服务器配置)。而且在上面的代码中,我没有得到最后两行,为什么要使用它们以及这些行的目的是什么。请解释!
81 c#  asp.net  compression  gzip 


15
“使用”语句与“最终尝试”
我有一堆将要使用读/写锁的属性。我可以使用atry finally或using子句实现它们。 在中,try finally我将在之前获取锁,然后在中try释放finally。在该using子句中,我将创建一个在其构造函数中获取锁并在其Dispose方法中释放该锁的类。 我在许多地方都使用了读/写锁,因此我一直在寻找比更为简洁的方法try finally。我很想听听一些关于为什么可能不推荐一种方法,或者为什么一种方法可能比另一种更好的想法。 方法1(try finally): static ReaderWriterLock rwlMyLock_m = new ReaderWriterLock(); private DateTime dtMyDateTime_m public DateTime MyDateTime { get { rwlMyLock_m .AcquireReaderLock(0); try { return dtMyDateTime_m } finally { rwlMyLock_m .ReleaseReaderLock(); } } set { rwlMyLock_m .AcquireWriterLock(0); try { dtMyDateTime_m = value; } finally { rwlMyLock_m .ReleaseWriterLock(); …

5
可以使用Xamarin开发Linux应用程序吗?
是否可以使用具有相同代码库的Xamarin开发和构建Linux应用程序? 使用Ubuntu几年后,我现在的主要操作系统再次是Windows。但是我可以切换到Mac并非不可能。 现在,我对Qt有一点经验,而对Xamarin则没有任何经验。有了Qt可以开发上的Windows,Linux和Mac以及用于Windows,Linux和Mac上,的iOS,安卓,Windows Mobile的,......他们对此感到非常清楚。 由于Xamarin现在是免费和开源的,而且我在Qt方面还没有太多经验,因此我正在考虑尝试使用Xamarin而不是Qt进行跨平台开发。 无法为Linux发布我的软件对我来说是一个大难题。能够在Linux上进行开发很不错,但这是可选的。但是经过我对Google的所有研究之后,我只能找到信息和人们在寻求支持以在Linux而非Linux上进行开发。 据我所知,单单Mono并不是一个问题。但据我所知Xamarin> Mono,但我并没有在Mono中得到一切,而在Xamarin中却可以得到。 我也不确定将来Mono会得到怎样的支持。对我来说,Xamarin对Microsoft而言比Mono本身更为重要。 我不确定是否有可能,因为Xamarin是基于Mono的,但是微软是否有可能在某个时候决定不以与Xamarin相同的方式支持具有.NET兼容性的Mono,甚至完全取消Mono的独立性。 ? 因此,我正在寻找一个我可以依靠的所有台式机和移动平台的单一框架,并且我想在进一步探讨Xamarin和/或Mono和/或Xamarin + Mono是否可以替代Qt之前,这些解决方案中。
81 c#  .net  linux  xamarin  mono 

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.