Tag: .net 2.0

.net中的Tag属性有什么用处

我注意到带控件的Tag属性。 是否可以使用它来引用我的自定义对象,或者我应该远离它,因为它需要装箱和拆箱,这被提到是不安全的并且不推荐。 TreeNode tn = new TreeNode (); CustClass o = new CustClass() o.number = 123; tn.Tag = o; class CustClass { public int number {get; set;} }

混淆或保护.Net程序集的最佳方法

我正在寻找一种技术或工具,我们可以用它来混淆或以某种方式保护我们编译的c#代码。 目标不是用户/数据安全,而是阻碍我们软件中某些技术的逆向工程。 这不适用于Web,但适用于桌面应用程序。 那么,你知道有哪些工具可以用来做这类事吗? (他们不需要自由) 如果有的话他们会有什么样的性能影响? 在开发过程中使用调试器时,这会产生任何负面影响吗? 我们在现场记录问题的堆栈跟踪。 混淆会如何影响这个?

如何在C#中使用ADO获得高效的Sql Server死锁处理?

我有一个类’数据库’,作为ADO.net的包装器。 例如,当我需要执行一个过程时,我调用Database.ExecuteProcedure(procedureName,parametersAndItsValues)。 我们遇到了SQL Server 2000中死锁情况的严重问题。我们团队的一部分正在处理sql代码和事务以最小化这些事件,但我正在考虑使这个数据库类能够抵御死锁情况。 我们希望死锁受害者可能在经过一段时间的延迟后重试,但我不知道是否可能。 以下是我们使用的方法的代码: public int ExecuteQuery(string query) { int rows = 0; try { Command.Connection = Connection; Command.CommandType = CommandType.Text; if(DatabaseType != enumDatabaseType.ORACLE) Command.CommandText = query; else Command.CommandText =”BEGIN ” + query + ” END;”; if (DatabaseType != enumDatabaseType.SQLCOMPACT) Command.CommandTimeout = Connection.ConnectionTimeout; if (Connection.State == ConnectionState.Closed) Connection.Open(); rows = Command.ExecuteNonQuery(); } […]

如何从运行Windows服务调用方法

我使用c#2005创建并启动了Windows服务Service1(使用exe作为MyService.exe)。 我已经包含了一个方法GetMyRandomNumber(),它返回一个随机的double值。 这里的问题是如何使用这个运行服务,我怎么能调用该方法。 我尝试添加MyService.exe的引用并访问该方法 – Service1 s = new Service1(); MessageBox.Show(s.GetMyRandomNumber().ToString()); 但是发现该方法不是从正在运行的服务实例中调用的,即使我停止服务也会执行语句。 有人可以解释我如何从运行服务实例调用该方法。 感谢您分享宝贵的时间。

C#2.0中的扩展方法

我需要什么命名空间才能使我的扩展工作 这是我的扩展方法 使用系统; 使用System.Collections.Generic; 使用System.Web; 使用System.Data; 命名空间MyUtilities { public static class DataReaderExtensions { public static DataTable ToDataTable(IDataReader reader) { DataTable table = new DataTable(); table.Load(读取器); 返回表; } } } 当我尝试像这样使用它 Session [“Master”] = cust.GetCustomerOrderSummary((string)Session [“CustomerNumber”])。ToDataTable(); 它不起作用。 这是.net 2.0

隐式和显式委托创建之间的区别(有和没有generics)

请参阅下面的Go()方法中的四行: delegate void Action(T arg); delegate void Action(); void DoSomething(Action action) { //… } void DoSomething(Action action) { //… } void MyAction(T arg) { //… } void MyAction() { //… } void Go() { DoSomething(MyAction); // throws compiler error – why? DoSomething(new Action(MyAction)); // no problems here DoSomething(MyAction); // what’s the difference between this… DoSomething(new […]

从DataGridView中的枚举创建下拉列表选项

我目前有一个类,我正在尝试创建一个简单的GUI来创建这个类的集合。 这个类的大多数属性都是字符串。 但是,我希望用户能够设置的属性之一是Enum。 因此,我希望用户界面具有此枚举的下拉列表,以限制用户输入无效的值。 目前,我正在获取对象的初始列表,将它们添加到DataTable并将DataGridView的DataSource设置为表。 很好地工作,甚至为一个布尔属性创建一个复选框列。 但是,我不知道如何将枚举列放入下拉列表中。 我正在使用C#和.NET 2.0。 此外,我已经尝试将DataGridView的DataSource分配给我的对象列表,但是当我这样做时,它对枚举没有帮助,我无法在DataGridView中创建新行,但我绝对不是绑定使用DataTable作为我的DataSource,它只是我半工作的选项。

错误:必须在控制离开当前方法之前分配Out参数

发回参数时会收到此错误 错误:必须在控制离开当前方法之前分配Out参数 代码是 public void GetPapers(string web, out int Id1, out int Id2) { SqlConnection conn = new SqlConnection(ConnectionString()); conn.Open(); SqlCommand cmd = new SqlCommand(“GetPapers”, conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter(“@URL”, String(web))); SqlDataReader rdr = cmd.ExecuteReader(); if (rdr.Read()) { Id1 = (int)rdr[“ID1”]; Id2 = (int)rdr[“ID2”]; } rdr.Close(); } 称之为 GetPapers(web, out Id1, out Id2); 与此问题相关 […]

从C#DataTable批量插入的最佳方法

我有一个DataTable ,我想推送到数据库。 我希望能够说出来 myDataTable.update(); 但在阅读MSDN 文档后 ,显然这确实是逐行插入的。 应该注意的是,这些陈述不是作为批处理执行的; 每行都单独更新。 我有什么选择? 编辑:我正在使用SQL Server 2005

UAC需要控制台应用程序

我有一个控制台应用程序,需要使用一些需要管理员级别的代码。 我已经读过我需要添加一个Manifest文件myprogram.exe.manifest,它看起来像这样: 但它仍然没有提升UAC(在控制台或在VS中进行调试)。 我该如何解决这个问题? 更新 如果我在Administrator中运行解决方案或在Administrator中运行/bin/*.exe,我能够使其工作。 我仍然想知道是否有可能在应用程序启动时弹出而不是显式右键单击>以管理员身份运行?