在asp.net mvc 3中管理每个会话和请求的AutoFac生存期范围

我想在Web应用程序中使用AutoFac。 我有根容器,每个会话一个子容器和每个请求的子容器。 我正在试图找出管理这些生命周期范围的最佳方法。 在Global.asax.cs中,我添加了以下内容: protected void Application_Start(object sender, EventArgs e) { var container = …; } protected void Session_Start(object sender, EventArgs e) { var sessionScope = container.BeginLifetimeScope(“session”); Session[“Autofac_LifetimeScope”] = sessionScope; } protected void Application_BeginRequest(object sender, EventArgs e) { var sessionScope = (ILifetimeScope) Session[“Autofac_LifetimeScope”]; var requestScope = sessionScope.BeginLifetimeScope(“httpRequest”); HttpContext.Current.Items[“Autofac_LifetimeScope”] = requestScope; } protected void Application_EndRequest(object sender, […]

在条件范围内声明隐式类型变量并在外部使用它

在下面的简化代码中, if(city == “New York City”) { var MyObject = from x in MyEFTable where x.CostOfLiving == “VERY HIGH” select x.*; } else { var MyObject = from x in MyEFTable where x.CostOfLiving == “MODERATE” select x.*; } foreach (var item in MyObject) { Console.WriteLine(“”); } 在条件块之外无法访问变量MyObject。 我怎样才能在if..else之外迭代?

如何将依赖项名称作为构造函数参数注入

使用Autofac,我可以使用以下代码注册一个类来解析使用属性注入的接口: builder.RegisterType() .As() .PropertiesAutowired() .InstancePerDependency(); 但是,我的Log4NetAdapter类有一个构造函数参数,需要调用类的名称。 这样,我可以根据调用类的名称记录事件。 public class Log4NetAdapter : ILogger { private readonly ILog _logger; public Log4NetAdapter(string logName) { _logger = LogManager.GetLogger(logName); } … } 如果每个依赖项都有自己的Log4NetAdapter实例,我怎样才能将typeof(dependency).Name的名称(即typeof(dependency).Name )注入到属性注入类的构造函数中?

使用PrivateKey X.509证书解密

我有一个问题是解密消息usgin X.509证书。 我使用以下选项生成带有makecert的证书: makecert -r -pe -n “CN=MyCertificate” -ss CA -sr CurrentUser -a sha1 -sky signature -cy authority -sv CA.pvk CA.cer PrivateKey是“mypassword”。 我的问题是当我想解密用c#中的先前证书加密的消息时。 我发现这个类http://blog.shutupandcode.net/?p=660 ,但是在X509Decrypt方法中,PrivateKey一直是null。 public static byte [] X509Decrypt(byte [] data,string certificateFile,string password) { //加载证书并解密指定的数据 使用(var ss = new System.Security.SecureString()) { foreach(密码中的var keyChar.ToCharArray()) ss.AppendChar(keyChar); //加载受密码保护的证书文件 X509Certificate2 cert = new X509Certificate2(certificateFile,ss); 使用(RSACryptoServiceProvider rsa =(RSACryptoServiceProvider)cert.PrivateKey) { […]

在wpf应用程序中捕获windows shutdown事件

我有一个ac#WPF应用程序,需要在关闭时保存数据。 如果用户关闭程序,则窗口关闭/关闭事件可正常工作,但如果用户注销/关闭计算机,则不会调用它们。 我已经找到了在winforms程序中捕获此事件的方法( 此处和此处 )。 但我无法弄清楚如何在WPF应用程序中实现这一点。 我正在尝试停止关机,直到我的程序准备好退出

使用c#获取Changeset及其在TFS上的所有更改

我试图通过它的变化获得特定的变更集。 这是工作。 问题是我无法获取受该变更集影响的文件。 Changeset changeset = GetChangeset(new Uri(“tfs path”), 10918); foreach (var w in changeset.Changes) { Console.WriteLine(“Type:” + w.ChangeType); Console.WriteLine(“Comment:” + changeset.Comment); Console.WriteLine(“Date:” + changeset.CreationDate); foreach (var y in changeset.WorkItems) { Console.WriteLine(“Name:” + y.Title + y.Type); } } private static Changeset GetChangeset(Uri serveruri, int changesetid) { var tfs = new TfsTeamProjectCollection(serveruri); var svc = tfs.GetService(); […]

System.Web.UI在控制台应用程序中不可用?

我试图编写一个快速的控制台应用程序,将数据输出到HTML文件,但是我无法访问System.Web.UI命名空间。 将System.Web添加到我的引用中会在解决方案资源管理器中的引用名称顶部放置一个警告图标,并且.NET引用列表中没有System.Web(为了让我实际将它添加到我必须去的项目中)到对象浏览器并从那里添加它)。 有人对我可能遗失的内容有任何想法吗? 非常感谢!

我可以在TabControl上的标签上删除虚线焦点矩形吗?

我有一个标签控件,需要删除所选标签周围的虚线焦点矩形。 我已将TabControl的TabStop属性设置为false。 但是,如果单击选项卡并按Tab键,则会在tabname周围显示虚线矩形。 我尝试创建自己的TabControl并尝试了这个 class MyTabControl : TabControl { public MyTabControl() { TabStop = false; DrawMode = TabDrawMode.OwnerDrawFixed; DrawItem += new DrawItemEventHandler(DoMoreTabControl_DrawItem); Invalidate(); } } 但是,仍然会出现虚线矩形。 我也尝试重写MyTabControl.OnPaint()方法,但它没有帮助。 有没有办法实现这个目标?

打开/关闭Windows Phone设置

OK我需要做的是相当简单:能够以编程方式 (通过某些API)打开/关闭系统设置,例如: 无线上网 蓝牙 细胞的 调频收音机 关于如何去做的任何想法? (我到处搜索,没有发现任何最新信息)

当一个struct是一个struct时,using语句是什么时候用它的参数?

我对以下代码有一些疑问: using System; namespace ConsoleApplication2 { public struct Disposable : IDisposable { public void Dispose() { } } class Program { static void Main(string[] args) { using (Test()) { } } static Disposable Test() { return new Disposable(); } } } 我的问题是: 在Disposable结构上运行的using语句是否会从Test()框返回结构? 我怎样才能找到自己的答案? 为了试图找出自己,我检查了上面代码生成的IL,这里是Main(…)方法的IL: .method private hidebysig static void Main(string[] args) cil managed { […]