Tag: .net

如何访问Task.Factory.StartNew中的HttpContext.Current?

我想在我的asp.net应用程序中访问HttpContext.Current Task.Factory.Start(() =>{ //HttpContext.Current is null here }); 我该如何解决这个错误?

更好的PropertyChanged和PropertyChanging事件处理

我正在为我们的应用程序实现观察者模式 – 目前正在使用RX Framework。 我目前有一个看起来像这样的例子: Observable.FromEventPattern(Instance.Address, “PropertyChanged”) .Where(e => e.EventArgs.PropertyName == “City”) .ObserveOn(Scheduler.ThreadPool) .Subscribe(search => OnNewSearch(search.EventArgs)); (我有一个类似的“PropertyChanging”) EventArgs不会给我太多。 我想要的是EventArgs的扩展,它使我能够查看先前和新值,以及在“更改”侦听器中标记事件的能力,以便实际上不会持续更改。 如何才能做到这一点? 谢谢。

使用C#设计模式

我打算在工作中学习C# – 一个中等复杂的(2000行代码)项目。 我有兴趣在整个过程中选择“设计模式”。 任何人都可以建议一本不会承担太多c#专业知识并教授设计模式的书吗? 如果这本书不是专门用于设计模式,那就没关系(它可能是章节之一)。

将字符串数组转换为double数组的最快方法?

我最近不得不处理大型字符串数组到数字数组的转换,我想知道最快的方法是什么。 起初我采纳了: double[] doubles = sarray.Split(‘,’).Select(Double.Parse).ToArray(); …这真的很甜 ……但是今天,我决定切换回一个简单的for循环,将数组中的所有字符串解析为Double,并且不太令人惊讶的是,基准测试似乎偏向于for循环..所以我应该切换回来一个基本的循环? 另外,我想知道是否有更好的类型可用于存储分割的字符串,例如HashSet ,它可能在此转换期间表现更好?

确定用户是否在.NET 4.0应用程序的AD组中

我试图确定用户是否是内部ASP.NET 4.0应用程序的Active Directory(AD)组的成员。 在用户不是AD组成员的情况下,下面的代码在最后一行(return语句)上抛出“尝试访问已卸载的appdomain”exception错误。 public static bool IsInADGroup(string userName, string groupName) { var principalContext = new PrincipalContext(ContextType.Domain); UserPrincipal userPrincipal = UserPrincipal.FindByIdentity(principalContext, userName); if (userPrincipal == null) return false; GroupPrincipal groupPrincipal = GroupPrincipal.FindByIdentity(principalContext, groupName); if (groupPrincipal == null) return false; return userPrincipal.IsMemberOf(groupPrincipal); } 有关如何修复或其他解决方法的任何想法?

在C#3.0中是否存在针对“特殊类”Enum的generics类型约束的解决方法?

更新:有关C#解决方法,请参阅此问题的底部。 嗨,您好, 请考虑以下扩展方法: public static bool HasFlags(this T value, T flags) where T : System.Enum { // … } 如您所知,这将在编译时抛出错误,因为通常不允许类从System.Enuminheritance。 问题是使用enum关键字指定的任何枚举实际上都是从System.Enuminheritance的,因此上述代码将是仅将扩展方法限制为枚举的理想方法。 现在明显的解决方法是使用Enum而不是T ,但是你失去了generics类型的好处: MyEnum e; e.HasFlags(MyOtherEnum.DoFunkyStuff); 上面的代码会使用generics类型抛出编译时错误,而它只能使用Enum类型抛出运行时错误(如果我实现它就会这样做。) 是否有任何编译器选项可用于关闭约束检查,还是有其他一些漂亮的方法来做到这一点? 在建议之前,我想说我不会where T : struct或者其他where T : struct使用,从那以后你就可以做到像123.HasFlags(456)这样奇怪的东西。 我很困惑为什么这个错误根本存在…这是你where T : System.Object使用的同样的问题,但为此你有where T : class …为什么没有where T : enum ? C#解决方法 Jon Skeet已经开始研究一个库,该库通过对IEnumConstraint的约束来编译类,然后将其替换为System.Enum后构建。 我相信,这是目前最接近解决这个问题的人。 看到: 代码项目: http : […]

Math.Pow与乘法运算符(性能)

任何人都知道乘法运算符是否比使用Math.Pow方法更快? 喜欢: n * n * n VS Math.Pow ( n, 3 )

在Unity 5中使用.NET 4.5代码

我正在使用Unity3D版本5开发游戏。游戏应该使用已在C#.NET4.5引擎中编程的严格业务规则。 使用Xamarin / Mono,我们希望在Windows,Android,其他方面使其可用… 我尝试将引擎构建到一个DLL中,并将其用作Unity中的托管插件。 但Unity使用旧版本的Mono来编译整个游戏并拒绝使用.NET 4.5 dll。 我真的需要使用这个代码,我考虑将它降级到.NET 3.5,但鉴于已经在引擎上完成的工作,它不是一个可接受的解决方案。 关于android,我认为使用Xamarin获取原生的android代码并将其用作Unity中的本机插件。 现在我需要一个Windows解决方案。 我正在研究如何使用C ++中的C#代码来创建一个非托管的dll,但我正在努力了解COM互操作,C ++ / CLI或其他方法之间适用的方式。 有没有人知道如何在Unity中包含来自.NET 4.5的代码而没有/只需要很少的努力?

C#GUI编程启动

所以….我从来没有真正做过GUI编程应用程序。 也就是因为上学以来我一直被困在C ++领域。 但是自从我十二月gradle以来,我认为学习我想要研究一段时间的东西是很好的(当我找工作的时候)。 请不要将此标记为“主观”我只是简单地询问我需要“知道”开始。 即GUI编程。 我不习惯它……我也从未去过。 这不是他们在学校关注的东西(例如我的高级设计是一个网络摄像头鼠标的东西,但在GUI的方式很少) 我已经看到很多关于C#是用于快速开发的优秀GUI编程工具…..但我真的不知道那里有什么。 我知道“QT”,我习惯于C ++。 但是我不太熟悉“选择”GUI语言。 我喜欢在Windows上编程,但最近我的大部分内容都在Unix中(主要是因为我的操作系统类)。 我对.net一无所知,我听说过一些叫做WPF的东西? 这是.net …..或…..的一部分吗? 我只是有点困惑在哪里开始。 谢谢

.NET中的嵌入式Web服务器

我想在.NET开发的Windows应用程序中嵌入一个轻量级Web服务器。 Web服务器必须支持PHP。 我看过Cassini,但它似乎只是ASP.NET。