Tag: .net

从ID(或名称)创建对象

我有一个很多子类inheritance的抽象类: public abstract class CrawlerBase { public abstract void Process(string url); } 我正在研究这个循环: foreach (var item in result) { object crawler = null; switch (item.Type) { case “Trials”: var t = new Trials(); ct.Process(item.URL); //repetitive code. break; case “Coverage”: var c = new Coverage(); c.Process(item.URL); //repetitive code. break; default: break; } // crawler.Process(item.URL); } 现在,item.type字符串将取决于需要实例化的子类。 […]

即使pagesize设置为更大,directorysearcher对象的上限是5000

即使pagesize设置为更大,directorysearcher findall结果方法的上限是5000结果。 它似乎真的是,因为无论我得到什么5000结果。 这是C#

ASP.NET MVC中的动态LINQ Group By Query

我想知道如何最好地解决这个问题,因为我现在对我的视图中的硬编码列非常有用 – 我想知道如何扩展它以使列成为动态的。 控制器: var dc = new DataContextDC(); return View(dc.items.Where(i=>i.IsPublic == true)); 视图: s.GroupColumn)) { %> 如上所述,目标是让用户选择哪个列替换上面的“GroupColumn”。 我想避免添加任何外部库等。 我看到使用reflection(慢,但完全动态)或者因为这是我的应用程序中的一个View,我只是为数据库中的每一列复制上面的代码,然后在其上放一个switch语句(快速,脏,但有效)

在C#中使用本机dll中的c ++类

我花了大约3天时间阅读这个主题…… 由于许多教程并回答了有关如何创建本机DLL的问题,我现在完全迷失了。 如果你有空闲时间,请小心解释一下这个话题,并帮助我 – 如果你没有时间,那就去那里我的问题的简单forms…… 以下是我目前对该主题的了解: 1)我需要在类名之前使用定义为__declspec(ddlexport)和__declspec(ddlimport)的宏来导出所有类方法和变量 2)我需要在某处使用extern “C” ,但我不确定到底在哪里 3)有很多方法可以做到这一点(将类作为参数传递给接受它的方法c approch / export class / use interface) 这就是我迷失的原因和方式: 1)大多数教程都是用于导出方法,我怀疑与类相比很容易(在C#中你使用[Dllimport,DLL的名称]然后你调用每个方法) 2)我是否需要在课堂上使用extern “C” ? 3)如果我使用带接口的工厂方法,我是否需要分发包含接口的.h文件? 这是我想要做的: 1)创建一个带有类的C ++ DLL,并导出要在.NET或C ++中使用的类(我想保护我的代码,因为我看到了使用存储的IL可以轻松地反转托管代码。) 2)我想有2个DLL,一个C ++本机DLL,另一个将是包装DLL,所以如果有人想在C ++中使用我的类,他可以直接使用本机DLL,如果他想在C#/ VB.net他可以使用C ++ / CLI包装器DLL … 3)没有libs,没有头文件,没有def文件,……等…..只有纯DLL(2个文件将被释放) 简单的forms 假设我想从这个C ++类中实例化C#中的对象 Class Human { private: int Pee_Meter; public: Void Do_Pee() { //stuff here }; }; […]

Silverlight – > WCF – >数据库 – >问题

我有一些调用WCF服务的silverlight代码,然后使用entity framework访问数据库并返回记录。 一切运行正常,但……当我用经典的ADO.NET代码替换entity framework代码时,我收到一个错误: 远程服务器返回错误:NotFound 当我使用unit testing直接调用ADO.NET代码时,它会返回正确的记录,因此它不是ADO.NEt代码的问题。 我使用了fiddler,它似乎说服务找不到“500”错误。 我不认为这与服务有任何关系,因为我唯一改变的是访问数据库的技术。 谁知道我在这里缺少什么?

如何将一个图形对象复制到另一个

我试图将一个图形对象的内容复制到另一个图形对象,但我唯一能够找到的是基于使用GDI32.DLL ,我宁愿避免使用,如果可能的话。 有谁知道如何使用托管代码这是否可行? 我不介意答案是在C#还是VB.Net。 这是我目前拥有的: Private Sub CopyGraphics() Dim srcPic As Graphics = pnl.CreateGraphics Dim srcBmp As New Bitmap(pnl.Width, pnl.Height, srcPic) Dim srcMem As Graphics = Graphics.FromImage(srcBmp) Dim HDC1 As IntPtr = srcPic.GetHdc Dim HDC2 As IntPtr = srcMem.GetHdc BitBlt(HDC2, 0, 0, pnl.Width, pnl.Height, HDC1, 0, 0, 13369376) pnlDraw.BackgroundImage = srcBmp ‘Clean Up code omitted… […]

从MS Access转换OLE图像对象以在.NET中使用

我正在努力将基于Access的系统重新开发到c#.net,但是当MS从办公室2003到办公室2007时,他们删除了访问中的图片编辑器 – 这意味着之前存储的图片将不再显示在系统中。 该公司的人做了一个黑客,基本上使用excel在后台保存图像(如果你需要,我可以获得更多信息)但基本上它意味着仍然可以使用访问图像控件(对象绑定帧)。 但是,我现在遇到了尝试在.NET应用程序中显示这些问题的问题,经过无数天尝试操作字节数组的不同方法后,我接近放弃了。 我尝试了至少8个不同的建议解决方案,每个解决方案在执行Image.fromStream()时以“参数未识别”exception结束。 下面是迄今为止让我最接近的代码: private void imageExtractTest() { LogOnDataSetTableAdapters.QueriesTableAdapter qa = new LogOnDataSetTableAdapters.QueriesTableAdapter(); object docO = qa.GetLogonImage(); if (docO == null || !(docO is byte[])) { return; } byte[] doc = (byte[])docO; MemoryStream ms = new MemoryStream(); ms.Write(doc, 0, doc.Length); int firstByte; int secondByte; ms.Seek(0, SeekOrigin.Begin); firstByte = ms.ReadByte(); secondByte = ms.ReadByte(); […]

如何从VB.NET中的事件中获取实际的EventHandler委托实例?

在C#中,我可以这样做: EventHandler handler = this.SomeEvent; ……这会让我做,例如,做: Delegate[] attachedHandlers = handler.GetInvocationList(); 在VB.NET中,我似乎无法弄清楚如何做类似的事情。 这不起作用: Dim handler As EventHandler = Me.SomeEvent …由于以下错误: 公共事件SomeEvent(sender As Object,e As EventArgs)’是一个事件,不能直接调用。 使用’RaiseEvent’语句来引发事件。 但这也不起作用: Dim handler As EventHandler = AddressOf Me.SomeEvent …因为: ‘AddressOf’操作数必须是方法的名称(没有括号)。 那么如何从VB.NET中的事件中实际获取EventHandler呢? 立即想到的唯一想法是使用reflection,但这看起来非常荒谬。

C#Encoding.Converting Latin to Hebrew

我正在尝试获取和解析一个用希伯来语编写的在线excel文档,但不幸的是用非希伯来语编码。 作为一个例子,我正在尝试转换以下字符串:“âìéåï_1”,它使用C#代码作为希伯来语的第一个表名,但我无法这样做。 我知道上面是可转换的,因为当我在NotePad ++中打开并选择编码/字符集/希伯来语/ Windows 1255时,我可以看到:“גליון_1”这是上述字符串的正确希伯来语表示。 我正在使用以下代码 string str = “âìéåï_1”; Encoding windows = Encoding.GetEncoding(“Windows-1255”); Encoding ascii = Encoding.GetEncoding(“Windows-1252”); byte[] asciiBytes = ascii.GetBytes(str); byte[] windowsBytes = Encoding.Convert(ascii, windows, asciiBytes); char[] windowsChars = new char[windows.GetCharCount(windowsBytes, 0, windowsBytes.Length)]; windows.GetChars(windowsBytes, 0, windowsBytes.Length, windowsChars, 0); string windowsString = new string(windowsChars); 我假设原始字符串的编码是Windows-1252,因为当我将它粘贴到NotePad ++并将编码更改为Windows-1252时,字符串保持不变… 我可能在这里做错了,有谁知道如何正确转换上述内容? 谢谢, 米奇

如何更改WPF ComboBox SelectedText BackGround Color?

我在WPF-MVVM中有一个Combobox,我在combobox的弹出框和文本框中更改了combobox。 当我滚动combobox列表项时,他的背景是粉红色的,这就是我所拥有的。 但是从combobox列表中选择项目后,combobox项目中的选定值具有蓝色背景。 这是Windows窗体和WPF中combobox的默认设置。 有关详细信息,请参见图像。 如何在combobox文本框控件中更改选定的文本背景颜色 combobox有 IsEditable=True属性集