Questions tagged «c#»

C#(发音为“ See Sharp”)是由Microsoft开发的一种高级,静态类型的多范例编程语言。C#代码通常针对Microsoft的.NET系列工具和运行时,其中包括.NET Framework,.NET Core和Xamarin。使用此标记可解决有关用C#或C#正式规范编写的代码的问题。

12
当参数不是字符串时,不对SQL查询进行参数化是否安全?
在SQL注入方面,我完全理解了参数化string参数的必要性。那是书中最古老的把戏之一。但是什么时候可以证明不对参数进行参数化SqlCommand呢?是否将任何数据类型视为“安全的”而不进行参数化? 例如:我不会认为自己是SQL专家附近的任何地方,但是我无法想到在任何情况下都可能容易接受SQL注入以接受a bool或an int并将其直接连接到查询中。 我的假设是正确的,还是可能在程序中留下巨大的安全漏洞? 为了澄清起见,标记了这个问题 C#这是一种强类型的语言;当我说“参数”时,请想一想 public int Query(int id)。

5
用于对修改后的base64 URL进行解码/编码的代码
我想对数据进行base64编码,以将其放入URL,然后在HttpHandler中对其进行解码。 我发现Base64编码允许使用'/'字符,这会弄乱我的UriTemplate匹配。然后我发现维基百科有一个“ URL的修改后的Base64”概念: 存在URL变体的经过修改的Base64,其中将不使用填充'=',并且标准Base64的'+'和'/'字符分别被替换为'-'和'_',以便使用URL编码器/解码器不再是必需的,并且对编码值的长度没有影响,通常保留相同的编码形式以供关系数据库,Web表单和对象标识符使用。 使用.NET,我希望将当前代码从基本的base64编码和解码修改为使用“ URL的修改后的base64”方法。有人这样做吗? 要解码,我知道它始于以下内容: string base64EncodedText = base64UrlEncodedText.Replace('-', '+').Replace('_', '/'); // Append '=' char(s) if necessary - how best to do this? // My normal base64 decoding now uses encodedText 但是,我可能需要在末尾添加一个或两个'='字符,看起来有点复杂。 我的编码逻辑应该更简单一些: // Perform normal base64 encoding byte[] encodedBytes = Encoding.UTF8.GetBytes(unencodedText); string base64EncodedText = Convert.ToBase64String(encodedBytes); // Apply …
113 c#  url  base64  encode  decode 

13
C#遍历枚举?(索引System.Array)
我有以下代码: // Obtain the string names of all the elements within myEnum String[] names = Enum.GetNames( typeof( myEnum ) ); // Obtain the values of all the elements within myEnum Array values = Enum.GetValues( typeof( myEnum ) ); // Print the names and values to file for ( int i …

3
.NET Core是否支持异步控制台应用程序?
在某个时间点,CoreCLR支持异步主入口点。看到http://blog.stephencleary.com/2015/03/async-console-apps-on-net-coreclr.html 但是,以下两个程序均不能在.NET Core RTM中运行 using System; using System.Threading.Tasks; namespace ConsoleApplication { public class Program { public static async Task Main(string[] args) { await Task.Delay(1000); Console.WriteLine("Hello World!"); } } } 要么 using System; using System.Threading.Tasks; namespace ConsoleApplication { public class Program { public async Task Main(string[] args) { await Task.Delay(1000); Console.WriteLine("Hello …
113 c#  .net  .net-core 

5
从Windows窗体过渡到WPF
很长一段时间以来,我一直坚持从事Windows Forms开发(从VB6开始,一直持续到C#.NET 4.5),并且我几乎都达到了Windows Forms可以使用纯.NET的极限。 ,以及使用本机代码的特殊效果。 我曾尝试学习WPF和XAML,但是我对WPF的新设计师一无所知。与Windows Forms设计器相比,它似乎真的很难使用。 我想知道.NET的WPF设计器是否还有其他更适合Windows Forms开发人员的替代方法?

5
捕获ASP.NET Web Api中所有未处理的异常
如何捕获ASP.NET Web Api中发生的所有未处理的异常,以便我可以记录它们? 到目前为止,我已经尝试过: 创建并注册 ExceptionHandlingAttribute 在中实现Application_Error方法Global.asax.cs 订阅 AppDomain.CurrentDomain.UnhandledException 订阅 TaskScheduler.UnobservedTaskException 在ExceptionHandlingAttribute成功处理时引发的控制器操作方法和操作筛选范围内,但其他异常没有被处理,例如例外: IQueryable动作方法返回的执行失败时引发的异常 消息处理程序(即HttpConfiguration.MessageHandlers)引发的异常 创建控制器实例时引发的异常 基本上,如果异常将导致向客户端返回500 Internal Server Error,我希望它被记录下来。实施Application_Error在Web窗体和MVC中做得很好-我可以在Web Api中使用什么?

8
我是否必须先关闭SQLConnection的SQLConnection?
根据我在此处有关Disposable对象的其他问题,是否应该在using块结束之前调用Close()? using (SqlConnection connection = new SqlConnection()) using (SqlCommand command = new SqlCommand()) { command.CommandText = "INSERT INTO YourMom (Amount) VALUES (1)"; command.CommandType = System.Data.CommandType.Text; connection.Open(); command.ExecuteNonQuery(); // Is this call necessary? connection.Close(); }

6
如何创建不可变的类?
我正在创建一个不可变的类。 我已将所有属性标记为只读。 我在班上有一个项目清单。 尽管如果该属性为只读,则可以修改列表。 公开列表的IEnumerable使其不可变。 我想知道使一类不变的基本规则是什么?
113 c#  .net  immutability 

8
如何使用所有引用递归将程序集加载到AppDomain?
我想加载到AppDomain具有复杂引用树的新程序集(MyDll.dll-> Microsoft.Office.Interop.Excel.dll-> Microsoft.Vbe.Interop.dll-> Office.dll-> stdole.dll) 据我了解,将程序集加载到时AppDomain,其引用不会自动加载,而我必须手动加载它们。因此,当我这样做时: string dir = @"SomePath"; // different from AppDomain.CurrentDomain.BaseDirectory string path = System.IO.Path.Combine(dir, "MyDll.dll"); AppDomainSetup setup = AppDomain.CurrentDomain.SetupInformation; setup.ApplicationBase = dir; AppDomain domain = AppDomain.CreateDomain("SomeAppDomain", null, setup); domain.Load(AssemblyName.GetAssemblyName(path)); 并得到FileNotFoundException: 无法加载文件或程序集'MyDll,版本= 1.0.0.0,文化=中性,PublicKeyToken =空'或其依赖项之一。该系统找不到指定的文件。 我认为关键部分是其依赖项之一。 好吧,我之前要做 domain.Load(AssemblyName.GetAssemblyName(path)); foreach (AssemblyName refAsmName in Assembly.ReflectionOnlyLoadFrom(path).GetReferencedAssemblies()) { domain.Load(refAsmName); } 但是FileNotFoundException再次出现在另一个(引用的)程序集上。 如何递归加载所有引用? …

13
使用jQuery Ajax将对象列表传递到MVC控制器方法中
我正在尝试使用jQuery的ajax()函数将对象数组传递到MVC控制器方法中。当我进入PassThing()C#控制器方法时,参数“ things”为空。我已经尝试使用List的类型作为参数,但这也不起作用。我究竟做错了什么? <script type="text/javascript"> $(document).ready(function () { var things = [ { id: 1, color: 'yellow' }, { id: 2, color: 'blue' }, { id: 3, color: 'red' } ]; $.ajax({ contentType: 'application/json; charset=utf-8', dataType: 'json', type: 'POST', url: '/Xhr/ThingController/PassThing', data: JSON.stringify(things) }); }); </script> public class ThingController : Controller …
113 c#  asp.net-mvc  jquery 

22
C#数据表到CSV
有人可以告诉我为什么下面的代码不起作用。数据已保存到csv文件中,但是没有分隔数据。所有这些都存在于每一行的第一个单元格中。 StringBuilder sb = new StringBuilder(); foreach (DataColumn col in dt.Columns) { sb.Append(col.ColumnName + ','); } sb.Remove(sb.Length - 1, 1); sb.Append(Environment.NewLine); foreach (DataRow row in dt.Rows) { for (int i = 0; i < dt.Columns.Count; i++) { sb.Append(row[i].ToString() + ","); } sb.Append(Environment.NewLine); } File.WriteAllText("test.csv", sb.ToString()); 谢谢。
113 c#  csv  delimited-text 

3
在C#中从DataTable中删除列
我有一个DataSet,它从函数调用中传回了我的数据表。它有15到20列,但是我只想要10列的数据。 有没有一种方法可以删除那些我不想要的列,将DataTable复制到另一个仅定义了我想要的列的方法,或者只是更好地迭代集合并只使用我需要的列即可。 我需要将这些值写到固定长度的数据文件中。
113 c#  asp.net 


8
在数组中查找值的索引
可以使用linq以某种方式在数组中查找值的索引吗? 例如,此循环在数组中定位键索引。 for (int i = 0; i < words.Length; i++) { if (words[i].IsKey) { keyIndex = i; } }
113 c#  arrays  linq 

20
EditorFor()和html属性
Asp.Net MVC 2.0预览版提供了类似的帮助 Html.EditorFor(c => c.propertyname) 如果属性名称为字符串,则上面的代码将呈现一个texbox。 如果我想将MaxLength和Size属性传递给文本框或我自己的CSS类属性怎么办? 我需要为我的应用程序中的每种尺寸和长度组合创建一个模板吗?如果是这样,则不会使默认模板可用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.