在Dispose方法中关闭数据库连接是对的吗?

我怀疑我们的某个应用程序中使用的数据库连接并不总是关闭。 我去看代码,我发现了一个具有SqlConnection对象的类DataProvider 。 连接在这个类的构造函数中打开,并在它的Dispose方法中关闭(不要判断,我知道保持一个开放的连接是邪恶的,它不是我的代码,它不是问题的重点)。 Dispose方法实现如下: protected virtual void Dispose(bool disposing) { if (!_disposed) { if (disposing) { if (_conn != null) _conn.Close(); } _disposed = true; } } 问题是: 是否始终保证连接已关闭? 这段代码对吗? 我认为应该有_conn.Dispose()调用 – 我是对的,可能会影响不关闭连接(可能不会)?

如何推动自定义控制器工厂ASP.Net MVC

我是mvc地区的新手。 所以我还在学习,并试图在MVC中学习很多先进的领域。 所以我正在阅读关于自定义控制器工厂ASP.Net MVC的post。 一个人解释得那么少,所以我只是不明白如何实施。 这里是post url 在asp.net mvc中是否可以制作通用控制器? 他说 您希望/Product/Index触发MyController.Index() 这可以通过编写自己的IControllerFactory并实现CreateController方法来实现,如下所示: public IController CreateController(RequestContext requestContext, string controllerName) { Type controllerType = Type.GetType(“MyController”).MakeGenericType(Type.GetType(controllerName)); return Activator.CreateInstance(controllerType) as IController; } 需要更多示例代码。 只是不明白在哪里定义CreateController函数。 我需要在基本控制器中编写此function吗? 当请求来自/Product/Index或/Customer/Index如何在基本控制器中调用索引方法? 所以在MVC高级领域寻找像我这样的新手的指导。 谢谢

asp.net中的办公自动化问题。 如果我知道如何,我可以使用开放式办公室等替代方案

我有一个ASP.NET 2.0 Web应用程序,应该上传一个ppt文件,然后将其幻灯片提取到图像。 为此我导入了office.dll和Microsoft.Office.Interop.PowerPoint.dll程序集并编写了以下代码 public static int ExtractImages(string ppt, string targetPath, int width, int height) { var pptApplication = new ApplicationClass(); var pptPresentation = pptApplication.Presentations.Open(ppt, MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse); var slides = new List(); for (var i = 1; i <= pptPresentation.Slides.Count; i++) { var target = string.Format(targetPath, i); pptPresentation.Slides[i].Export(target, "jpg", width, height); slides.Add(new FileInfo(target).Name); } […]

不要使用clickonce覆盖settings.settings文件

起初我在appSet配置下的app.config文件中存储了一些用户定义的设置。 这些是用户在运行时可以更改的属性。 我遇到的第一个问题是当我使用ClickOnce部署我的应用程序时,它会覆盖app.config文件并且用户丢失了他的个人设置。 然后我将属性移动到settings.settings文件(= app.config中的usersettings部分),因为我在互联网上发现,使用ClickOnce部署时不会覆盖此部分。 不,它确实.. Settings.Settings属性是: 构建动作=内容 复制到=不复制 那么如何在app.config文件或settings.settings文件中完成我的用户的个人设置。 还是有另一种方式,我做错了吗? 谢谢!

Linq to SQL:为什么我收到IDENTITY_INSERT错误?

我正在使用Linq to SQL。 我有一个DataContext,我就是.SubmitChanges()。 插入标识字段时出错: 当IDENTITY_INSERT设置为OFF时,无法在表’Rigs’中为identity列插入显式值。 唯一的标识字段是“ID”,其值为0.它在DBML中定义为: [Column(Storage=”_ID”, AutoSync=AutoSync.OnInsert, DbType=”Int NOT NULL IDENTITY”, IsPrimaryKey=true, IsDbGenerated=true)] 有几个外键,我已经validation它们的值与外表的内容一致。 为什么我会收到此错误? 编辑:这是查询: exec sp_executesql N’INSERT INTO [dbo].[Rigs]([id], [Name], [RAM], [Usage], [MoreInfo], [datetime], [UID]) VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6) SELECT [t0].[id], [t0].[OSID], [t0].[Monitors] FROM [dbo].[Rigs] AS [t0] WHERE [t0].[id] = @p7′,N’@p0 int,@p1 varchar(1),@p2 int,@p3 varchar(1),@p4 varchar(1),@p5 datetime,@p6 […]

如何在winforms C#中自动保存并自动加载所有属性?

如何在关闭时自动保存所有属性winforms并在加载时自动加载所有属性winforms? C# using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; namespace SControl { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < Controls.Count; i++) { System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(typeof(Controls[i])); […]

通过动态方法解析IL中发现的令牌

感谢Hans Passant在这里回答我的问题: 如何从DynamicMethod获取IL bytearray? 我能够起床和跑步。 我现在正在尝试解决在IL发出的元数据令牌,以查看正在调用哪些方法,或者什么不是。 我能够解决方法体中的下一个标记是一个调用。 我正在使用Mono.Reflection的MethodBodyReader中的一些代码。 static byte[] GetILByteArray(Delegate @delegate){ // does stuff mentioned in other thread } … Expression foo = () => Console.WriteLine(0); var compiled = foo.Compile(); var bytes = GetILByteArray(compiled); int index =Array.FindIndex(bytes,b=>GetOpCode(b).OperandType == OperandType.InlineMethod); var token = BitConverter.ToInt32(bytes,index+1); compiled.Method.Module.ResolveMember(token); 引发exception,说明该域中的令牌是不可解析的。 这里有人有诀窍吗? 我应该尝试传递代理通用参数还是完全没用? 我正在考虑为表达式树的代表编写反编译器的想法,我真的希望能够使用表达式树,我将自己编译为测试用例,因为我总是可以回到原始版本并进行比较。

.NET SMTP客户端 – 客户端无权作为此发件人发送

当我尝试通过ASP MVC3项目使用SmtpClient类发送电子邮件时,我的服务器上出现了奇怪的现象。 这是我正在使用的代码。 try { var client = new SmtpClient(“MailServer”); client.UseDefaultCredentials = true; MailMessage message = new MailMessage(“me@mydomain.com”, “friend@mydomain.com”, “Test Message”, “Test Body”); client.Send(message); } catch (Exception ex) { // Do Nothing } 我已经部署在三个环境中; 在Windows 7上(使用VS 2010 IIS)它发送电子邮件很好,在Windows 2003 IIS6机器上它发送电子邮件很好,最后在Windows 2008 R2 II7服务器上我收到以下错误: Mailbox unavailable. The server response was: 5.7.1 Client does not have permissions […]

如何将复杂对象绑定到DataGridView?

我有一个遵循表格的类: public class Cat { public string Name { get; set; } public string Description {get; set; } public List Cheezbugers { get; private set; } }; public class Cheezburger { public int PattyCount { get; set; } public bool CanHaz { get; set; } }; 我希望能够在DataGridView显示一个Cats List ,如下所示: ——————————————————————————— | Name | Description | […]

如何在不关闭C#中的NetworkStream的情况下发出数据结束信号

我有一个客户端应用程序,它序列化一个对象并将其发送到服务器应用程序。 服务器应反序列化对象,对其进行更改,然后对其进行序列化并将其发回。 服务器代码: TcpClient client = server.AcceptTcpClient(); using(NetworkStream stream = client.GetStream()) { using(StreamReader streamReader = new StreamReader(stream)) { string xmlData = streamReader.ReadToEnd(); } } 除非客户端关闭流,否则ReadToEnd不会返回。 但是如果客户端关闭了流,我就无法发送响应。 有一个更好的方法吗?