Tag: .net

.NET核心中没有AppDomain! 为什么?

微软select不支持.NET Core中的AppDomain是否有很强的理由? 在构build长时间运行的服务器应用程序时,AppDomain特别有用,我们可能希望更新由服务器加载的程序集,而不会closures服务器。 没有AppDomains,我们将如何在长时间运行的服务器进程中replace我们的程序集? AppDomain也为我们提供了一种隔离服务器代码的不同部分的方法。 就像一个自定义websocket服务器可以在主appdomain中有套接字代码,而我们的服务在辅助appdomain中运行。 没有AppDomains,上面的情况是不可能的。 我可以看到一个论点,可能会谈论使用云的虚拟机概念处理程序集更改,而不必承担AppDomains的开销。 但这是微软认为还是说的? 或者他们有上述情况的特定原因和替代scheme?

奇怪的铸造行为。 无法将对象(int)强制转换为long

我有以下代码: int intNumber1 = 100; object intNumber2 = 100; bool areNumberOfTheSameType = intNumber1.GetType() == intNumber2.GetType(); // TRUE bool areEqual = intNumber1.Equals(intNumber2); // TRUE long longNumber1 = (long) intNumber1; // OK long longNumber2 = (long) intNumber2; // InvalidCastException. Why? 为什么第二次演员不工作? 我意识到这可能是因为对象没有明确的转换,但如果我们在运行时查看它的types,它是System.Int32 。 如果我使用var或dynamic而不是object ,它的工作原理。 有什么想法吗?

PipeTransmissionMode.Message:.NET命名pipe道如何区分消息?

有人可以澄清的PipeTransmissionMode.Message在.NET中的含义? .NET如何区分通过pipe道传递的另一条消息? 我可以序列化使用BinaryFormatter对象,然后通过pipe道作为消息? 或者当pipe道处于PipeTransmissionMode.Message模式时,只允许string消息?

在当前屏幕上最大化WPF窗口

我有一个无窗口的WPF应用程序,无论何时将窗口状态设置为最大化,都会在主显示屏上最大化它。 我想要做的就是使应用程序正在运行的最大化。 所以任何想法,我会做这个? 我现在的代码只是 private void titleBarThumb_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (this.WindowState == System.Windows.WindowState.Normal) { this.WindowState = System.Windows.WindowState.Maximized; } else { this.WindowState = System.Windows.WindowState.Normal; } }

可以使用string作为锁对象吗?

我需要在一个有限的string的基础上在一个地区做一个关键的部分。 我想要锁被共享相同的string实例,(有点类似于String.Intern方法)。 我正在考虑以下实施: public class Foo { private readonly string _s; private static readonly HashSet<string> _locks = new HashSet<string>(); public Foo(string s) { _s = s; _locks.Add(s); } public void LockMethod() { lock(_locks.Single(l => l == _s)) { … } } } 这种方法有什么问题吗? 以这种方式lockingstring对象是否可行,并且在使用HashSet<string>是否存在线程安全问题? 例如,创build一个为每个string实例创build一个新的locking对象的Dictionary<string, object>会更好吗? 最终实施 根据我的build议,进行了以下的实施: public class Foo { private readonly string […]

从多个线程调用Console.WriteLine

为什么Console.WriteLine从多个线程工作?

扩展方法与inheritance

有什么经验法则可以帮助确定在哪种情况下使用哪种? 我应该比其他大多数时间更喜欢一个吗? 谢谢!

InvalidOperationException:无法parsing“Microsoft.AspNetCore.Http.IHttpContextAccessor”types的服务

我开始将我的asp.net核心RC1项目转换为RC2,并面临现在IHttpContextAccessor没有解决的问题。 为了简单起见,我使用Visual Studio模板ASP.NET Core Web Application (.Net Framework)创build了新的ASP.NET RC2项目。 比我为HomeController添加了为我创build的模板的构造函数。 public HomeController(IHttpContextAccessor accessor) { } 而我开始申请后,我收到下一个错误: InvalidOperationException:尝试激活“TestNewCore.Controllers.HomeController”时无法parsing“Microsoft.AspNetCore.Http.IHttpContextAccessor”types的服务。 Microsoft.Extensions.Internal.ActivatorUtilities.GetService(IServiceProvider sp,Type type,Type requiredBy,Boolean isDefaultParameterRequired) 在我真正的应用程序中,我需要在我自己的服务类中parsingIHttpContextAccessor以访问_contextAccessor.HttpContext.Authentication和_contextAccessor.HttpContext.User 。 Everething在RC1中工作正常。 那么它怎么可能在RC2?

在ASP.NET MVC中如何避免HttpRequestValidationException渲染引起exception的相同视图

我只想知道如何在ASP.NET MVC中validation(或清除)用户input,以便不pipe提交的值如何都不会抛出HttpRequestValidationException。 例如,用文本input,如果用户input<BR/> ,则会引发exception,并显示黄色死亡屏幕。 我不要那个。 我想捕捉exception,并在当前视图中显示一个用户友好的错误,最好是与提交相同的值加载的控件。 我发现这个http://www.romsteady.net/blog/2007/06/how-to-catch-httprequestvalidationexcep.html ,但它对我的目的是没用的。 另外,我发现这个http://msdn.microsoft.com/en-us/library/aa973813.aspx,并试图把模型粘合剂,但我不能让工作。

.NET AJAX调用ASMX或ASPX或ASHX?

使用AJAX在客户端从JavaScript调用某些业务逻辑的最有效方法是什么? 看起来你可以直接从javascript调用一个[WebMethod]的aspx(在我的情况下我使用JQuery来帮忙),或者你可以直接调用.asmx。 哪个呼叫的开销较less? 最佳做法是什么? 另外,[ScriptService]属性在类中做了什么? 我从来没有在我的.aspx [WebMethod]方法之前使用过这一切,似乎一切工作正常。 我希望这是一个纯粹客观的问题。 提前致谢!