Tag: .net

适用于所有匹配的Boyer-Moore-Horspool算法(在字节数组中查找字节数组)

这是我对BMH算法的实现(它就像一个魅力): public static Int64 IndexOf(this Byte[] value, Byte[] pattern) { if (value == null) throw new ArgumentNullException(“value”); if (pattern == null) throw new ArgumentNullException(“pattern”); Int64 valueLength = value.LongLength; Int64 patternLength = pattern.LongLength; if ((valueLength == 0) || (patternLength == 0) || (patternLength > valueLength)) return -1; Int64[] badCharacters = new Int64[256]; for (Int64 i = […]

如何确定是否正在处理.NETexception?

我们正在调查C#中的编码模式,其中我们要使用带有特殊类的“using”子句,其Dispose()方法根据“using”主体是正常退出还是exception退出而执行不同的操作。 据我所知,CLR会跟踪当前正在处理的exception,直到它被“catch”处理程序消耗为止。 但是,这些信息是否以任何方式暴露给代码访问并不完全清楚。 你知道它是否,如果是,如何访问它? 例如: using (var x = new MyObject()) { x.DoSomething(); x.DoMoreThings(); } class MyObject : IDisposable { public void Dispose() { if (ExceptionIsBeingHandled) Rollback(); else Commit(); } } 这看起来几乎像System.Transactions.TransactionScope ,除了成功/失败不是通过调用x.Complete()来确定,而是基于using正文是否正常退出。

从c#(.NET)调用Python函数

我有Visual Studio 2015,我的主要表单用C#编写,从那里我有不同的用Python编写的类(普通的Python而不是Iron Python)。 如何从C#代码中调用Python函数? 我知道有很多关于此的主题但是大多数都太旧了,有些解决方案太难或者涉及使用像C ++这样的中间语言。 以下是我发现有用的一些链接,但未提供我正在搜索的答案: stackoverflow.com/questions/6624503/call-python-from-net stackoverflow.com/questions/27075671/calling-python-from-net-via-c-bridge 有一个简单的方法还是我还需要一个解决方法? 如果我需要一个解决方法,那么最简单的是什么?

使用C#从DataTable创建HTML

我需要能够将HTML数据传递到Outlook,如下所示: MailMessage message = new MailMessage(); message.Body = myBody; 最初我以为我可以将纯文本传递给它并像这样使用PadLeft : somestring.PadLeft(100); 但它没有正确对齐一切,因为即使||||| 和MMMMM长度都只有5个字符,它们在屏幕上的物理占用空间更大。 我的解决方案是将我的数据表中的数据转换为HTML表,然后将其传递给Outlook。 如何将数据表转换为html表? 我的问题有更好的解决方案吗? 非常感谢你的帮助。

自定义DataGridView列在Designer中使用时重复

我制作了一个自定义的DataGridView组件,里面有一个标准的DataGridViewImageColumn。 当我不需要在特定表中输入时,新属性会更改列的可见性。 我在构造函数中添加列并在CellFormatting事件上更新它。 这是一个像预期一样工作的部分。 当我将控件放到新表单上时,它会显示新列。 运行程序会在网格中生成两个图像列。 一个新表单刚刚添加了组件并设置了Dock.Fill 当我开始它而不改变任何东西时,它显示了两列。 第一个是它应该工作,第二个总是显示丢失的x图像(没有数据,因此它们显示x)。 在表单的设计者中,会自动添加一个ne image列。 private CustomDataGridView customDataGridView1; private System.Windows.Forms.DataGridViewImageColumn dataGridViewImageColumn1; 当我继续在表单中进行编辑时,有时会发生VS创建更多相同列的副本。 要解决这个问题,我必须时不时地清除DGV.Columns列表。 如何防止VS复制我的字段? 以下代码是重现问题的最小部分。 public class CustomDataGridView : DataGridView { private DataGridViewImageColumn EditStatusIcons; private bool hasIcons = true; public bool HasIcons { get { return this.hasIcons; } set { if (this.Columns[“EditIcons”] == null) return; this.Columns[“EditIcons”].Visible = value; this.hasIcons […]

通用QueryMultiple与Dapper

我有一个基本存储库,其中包含Generic Get方法,可以使用Dapper返回Data public T Get(Func query) { using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings[“myDB”].ConnectionString)) { return query.Invoke(db); } } 但是我现在需要返回多个数据。 DAL查询如下: var multi = db.QueryMultiple(getCarDataSp , new { CustomerID = customerId, Year = year }, commandType: CommandType.StoredProcedure)); var cars = multi.Read(); var options = multi.Read(); //wire the options to the cars foreach(var car in cars){ var […]

从另一个C#程序捕获c#可执行输出

我正在执行一个C#程序,即来自另一个C#程序的.exe。 但.exe在其程序中有一些Console.WriteLine()。 我想把标准输出到我的C#程序中。 例如, 考虑一个C#可执行文件,即1.exe,还有另一个程序2.cs. 我是从2.cs 1.exe打来的。 现在有一些控制台从1. exe显示的输出。 但是我希望我的程序中的输出2.cs. 用于向用户显示信息。 可能吗? 请帮忙 谢谢Sai sindhu

如何在c#中通过本地网络进行UDP组播?

我试图在我的本地网络上进行一些简单的UDP通信。 我想要做的就是对网络上的所有机器进行多播 这是我的发送代码 public void SendMessage(string message) { var data = Encoding.Default.GetBytes(message); using (var udpClient = new UdpClient(AddressFamily.InterNetwork)) { var address = IPAddress.Parse(“224.100.0.1”); var ipEndPoint = new IPEndPoint(address, 8088); udpClient.JoinMulticastGroup(address); udpClient.Send(data, data.Length, ipEndPoint); udpClient.Close(); } } 这是我的接收代码 public void Start() { udpClient = new UdpClient(8088); udpClient.JoinMulticastGroup(IPAddress.Parse(“224.100.0.1”), 50); receiveThread = new Thread(Receive); receiveThread.Start(); } public void […]

System.IO与VisualBasic.FileIO

我通常使用C#开发,并且非常习惯使用System.IO。 我最近跑过FileIO库,发现一些优点(例如将项目发送到回收站)非常好。 特别是在我目前正在进行的计划中。 我的问题是,System.IO是否执行VisualBasic.FileIO? 我正在编写的程序将把TB的信息复制到服务器塔上。 我想确保我不会因为我使用的库而失去任何时间。 先感谢您!!!

为什么我的IDocHostUIHandler实现被忽略

我已经从WebBrowser控件创建了派生控件,该控件具有自己的IDocHostUIHandler实现,遵循CreateWebBrowserSiteBase方法的想法: WebBrowser.WebBrowserSite类提供OLE IDocHostUIHandler接口的默认实现。 您可以提供自己的此接口实现,也可以实现任何其他WebBrowser ActiveX控件接口,以自定义控件的行为。 这个问题不起作用。 我的代码看起来如下: [PermissionSetAttribute(SecurityAction.LinkDemand, Name = “FullTrust”)] public MyBrowser(){} protected override WebBrowserSiteBase CreateWebBrowserSiteBase() { var manager = new NewWebBrowserSite(this); return manager; } protected class NewWebBrowserSite : WebBrowserSite, UnsafeNativeMethods.IDocHostUIHandler { private MyBrowser host; public NewWebBrowserSite(MyBrowser h) : base(h) { this.host = h; } int UnsafeNativeMethods.IDocHostUIHandler.ShowContextMenu(int dwID, NativeMethods.POINT pt, object pcmdtReserved, object pdispReserved) […]