Tag: c# 4.0

是否可以在浏览器上运行WPF应用程序?

我是WPF的新手。 我想知道可以在浏览器上运行wpf应用程序,还是必须创建不同的WPF浏览器应用程序?

使用OLEDB将AccessFile从Stream读取到DataSet

我使用Oledb读取AccessFile(.accdb)到DataSet,我不知道表名或列,常规实现是: public void GetAccessDB(string filepath){ this.ConnectionString = “Provider=Microsoft.ACE.OLEDB.12.0;Data Source = ” + filepath; // get Table Names this.TableNames = new List(); using (System.Data.OleDb.OleDbConnection oledbConnection = new System.Data.OleDb.OleDbConnection(this.ConnectionString)) { oledbConnection.Open(); System.Data.DataTable dt = null; dt = oledbConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); foreach (System.Data.DataRow row in dt.Rows) { string strSheetTableName = row[“TABLE_NAME”].ToString(); if (row[“TABLE_TYPE”].ToString() == “TABLE”) this.TableNames.Add(strSheetTableName); } oledbConnection.Close(); } […]

反映程序集会导致Unity需要Microsoft.Practices.ServiceLocation

我们通常只在我们的应用程序中引用Microsoft.Practices.Unity.dll。 我们只使用基本function,这很好用。 在一个应用程序中,使用reflection的行为导致Unity需要另一个DLL。 例如,创建一个控制台应用程序并仅引用Microsoft.Practices.Unity(文件版本2.0.414.0)。 输入以下代码并运行它: class Program { static void Main() { using (var container = new UnityContainer()) { container.RegisterType(); var thing = container.Resolve(); thing.DoSomething(); Console.WriteLine(); LoadSchemaLoaders(); } } public static void LoadSchemaLoaders() { var type = typeof(ISchemaLoader); try { // Get all loaded assemblies, including Unity. // Get all of the types. // Filter […]

在方法签名中使用新关键字通常只是为了可读性?

我已经阅读了方法签名中的 new关键字,并在本文中看到了下面的示例,但我仍然不明白为什么要在方法签名中编写new关键字。 如果我们省略它,它仍然会做同样的事情。 它会编译。 会有一个警告,但它会编译。 那么, 在方法签名中编写new内容只是为了提高可读性? public class A { public virtual void One() { /* … */ } public void Two() { /* … */ } } public class B : A { public override void One() { /* … */ } public new void Two() { /* … */ } } B […]

清除排序说明后如何删除wpf网格排序箭头

我单击网格标题对列进行排序,然后单击“重置”按钮以通过其集合视图清除排序描述。 但排序箭头图标仍然存在于标题中。 如何删除它?

切换最顶层的forms,没有闪烁

我正在使用C#.NET开发一个放大镜(使用WindowsForm),它显示了最顶层的可点击forms。 最顶部的窗口显示屏幕的特定部分。 我遇到的问题是我需要Hide()和Show()表格的屏幕截图(否则我会拍摄放大镜的截图)这会产生恼人的闪烁,其中放大镜消失并迅速再次出现。 如何在不隐藏/显示表单的情况下拍摄桌面的屏幕截图? 还有其他方法/解决方法吗? 谢谢。

是否可以包装整数并将其称为整数?

我想让IDictionary的IDictionary对它的含义不那么模糊,所以我想也许包装它会是一个好主意。 结果将类似于IDictionary 。 最好,finishPosition应该可以赋值,如finishPosition = 1 。 我不知道这是否可能以及如何。

C#动态通用列表

我想创建一个通用的List ,其类型在运行时声明。 我可以做到以下几点,但由于它是动态的,我怀疑存在速度惩罚。 我正在为异国情调的数据库编写一个包装器,因此速度至关重要。 List gdb = new List() 我在动态generics类型中阅读了这篇文章 ,但无法让它发挥作用。 具体来说,该对象不会显示为List,因此没有添加方法。 Type ac; switch (trail[dataPos].Type) { case GlobalsSubscriptTypes.Int32: ac = typeof(System.Int32); break; case GlobalsSubscriptTypes.Int64: ac = typeof(System.Int64); break; default: ac = typeof(System.String); break; } var genericListType = typeof(List); var specificListType = genericListType.MakeGenericType(ac); var gdb = Activator.CreateInstance(specificListType); 如何让gdb显示为以下之一: List List List

如何检查变量是否为Array或Object?

为了反序列化json对象,我必须定义一个父类,它将包含子类的对象或对象数组。 如果检索到对象,则必须是对象;如果从json检索到数组,则必须是对象数组。 JSON数组对象 {“y”:{“x”:[{“data”:28}, {“data”:56}, {“data”:89}]}} JSON对象 {“y”:{“x”:{“data”:28}}} y一次接收x,另一次接收x []。 没有这样的条件来确定y是否会接收数组或对象。 因此,为了确定我是否收到了数组,我正在检查IsArray()条件。 我试过了 class Y { public X x { get { return System.IsArray() ? new X() : new x[] }; set; } } class X { public int data { get; set; } } 它不起作用。 System.IsArray()未被识别?

为什么Task的Result属性不可用于非generics任务(C#4.0+)?

我试图掌握.NET 4.0+任务并行库概念…… 在以下C#4.0代码段中: Task t = Task.Factory.StartNew(() => { Console.WriteLine(“I am the task”); return “res1”; }); 为什么编译器没有(和运行时)如果不能使用返回产生任何错误,除非使用通用任务: Task t = Task.Factory.StartNew(() => { Console.WriteLine(“I am the task”); return “res1”; }); 或者它(返回的对象)可以使用? 我是否正确理解,只有在检测或确保返回类型(ed对象)或t.Result时才需要Task 中的Task ? 或者除了这个之外还有其他隐藏的必需品吗? 为什么这种类型不能从返回对象的类型中确定? 也就是为什么任务的Result属性不可用于非通用任务?