iTextSharp GetFieldPositions到SetSimpleColumn

我正在使用最新版本的iTextSharp: http : //sourceforge.net/projects/itextsharp/ 我在使用GetFieldPositions(fieldName)获取一些AcroField的位置后尝试使用ColumnText.SetSimpleColumn。 我可以找到的所有示例都显示GetFieldPositions返回一个float []但是这似乎不再是这种情况了。 它现在似乎是返回IList,它没有(根据Visual Studio)隐式转换为float []。 在0索引处的返回值内部是一个Rectangle的位置成员,但是由于我看到的示例在返回的float []上执行数学运算,我不确定GetFieldPostions中返回值的值是什么时候使用的使用SetSimpleColumn。 这是我正在引用的一篇文章: http : //blog.dmbcllc.com/2009/07/08/itextsharp-html-to-pdf-positioning-text/ 最简单的接受答案是如何将值从GetFieldPositions转换为SetSimpleColumn。 谢谢!

为什么我的解决方案不适用于C#中的P / Invoke NotifyServiceStatusChange?

我正在尝试P / Invoke C#中的NotifyServiceStatusChange事件来检查服务何时停止。 我设法让它编译并运行没有任何错误,但现在, 当我停止服务时,它似乎不想通知它已死 。 任何想法为什么会这样? 您可以通过将此代码复制到空白控制台应用程序中来测试它; 只需确保将“我的服务名称”替换为您的服务名称(下面有两个此字符串实例)。 using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { public delegate void StatusChanged(IntPtr parameter); public class SERVICE_NOTIFY : MarshalByRefObject { public uint dwVersion; public StatusChanged pfnNotifyCallback; public IntPtr pContext; public uint dwNotificationStatus; public SERVICE_STATUS_PROCESS […]

通过C#中调用的存储过程将Bytearray插入SQL

首先,我尝试了一切,并且无法理解为什么它不能正确更新我的varbinary字段。 在1728字节中,只有字节数组中的最后一个字节保存到字段中… 我生成我的字节数组如下: public static byte[] StringToByteArray(String hex) { int NumberChars = hex.Length; byte[] bytes = new byte[NumberChars / 2]; for (int i = 0; i < NumberChars; i += 2) bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16); return bytes; } 我也试过以下一个: public static byte[] ParseHex(string hex) { int offset = hex.StartsWith(“0x”) ? 2 : […]

SSH.NET不处理我的shell输入命令

我正在使用SSH.NET从C#中的控制台应用程序连接到我的Raspberry Pi。 我想从我自己的流中发送文本,通过StreamWriter写入它。 问题是它什么也没做。 这就像WriteLine(“ls”)不会产生任何影响。 这是代码: using System; using System.IO; using Renci.SshNet; namespace SSHTest { class Program { static void Main(string[] args) { var ssh = new SshClient(“raspberrypi”, 22, “pi”, “raspberry”); ssh.Connect(); var input = new MemoryStream(); var streamWriter = new StreamWriter(input) { AutoFlush = true }; var shell = ssh.CreateShell(input, Console.OpenStandardOutput(), new MemoryStream()); shell.Start(); […]

覆盖属性设置器和getter

有没有办法覆盖具有属性的auto属性的setter和getter? 像这样: [CustomAttribute] public int Value { get; set; } … public class CustomAttibute : Attribute { public override NotExistingPropertySetter(object value) { if (((int)value) < 10 ) { value = 10; } } }

WPF / C#不要阻止UI

我有一个现有的WPF应用程序,它有几个部分。 每个部分都是UserControl,它实现了一个接口。 该接口指定了两个方法: void LoadData([…])和bool UnloadData() 。 这些方法由UI线程调用,因此如果耗时,我们需要在后台工作中完成我们的工作。 LoadData没有问题,因为我们可以异步更新UI。 问题出在UnloadData()上。 如果我们真的可以离开当前视图,这应该返回。 这是使用当前数据状态(已保存/已修改/无效)计算的: 保存返回true, 无效询问您是否要保留一些正确的数据或不保存而离开 修改后告诉您可以取消更改(返回true),继续编辑(返回false),保存当前数据(返回true) 问题在于“修改 – >保存”。 这是一个耗时的方法,所以为了尊重应用程序的原理,我们应该在后台线程(带忙指示符)中运行它。 但是如果我们只是启动线程并转到下一部分,它将返回“true”到方法调用,我们将直接启动下一个视图。 在我的情况下,在保存本地数据之前加载下一个视图可能是个问题。 所以: 有没有办法在返回“true”之前等待后台线程完成,而不阻止UI? public bool UnloadData(){ if(…){ LaunchMyTimeConsumingMethodWithBackgroundWorker(); return true;//Only when my time consuming method ends } //[…] } 重要的编辑也许我不清楚:我知道如何使用BackgroundWorker或TPL。 我的问题是父类(调用UnloadData()的类是一个我无法编辑的类(由于多种原因:它在另一个不会重新加载的DLL中,它已经与70多个userControl一起工作,所有这些都在单独的项目(dll),由reflection加载。 这不是我的选择,我觉得它不好,但我现在要处理它。 我一直在寻找方法让我的方法等待返回我的方法。 我不确定是否有可能。 但我正在寻找一种解决方法,它将为我节省数周的工作量。

HTTP错误403.14 – 禁止使用 – 带有IIS Express的MVC 4

这似乎是一个已经被多次询问/回答的问题。 不是。 开发环境: VS 2012和MVC 4.我使用内置的IIS Express来运行应用程序。 直到昨天才发生此错误。 它突然开始发生,我被卡住了。 奇怪的是它只发生在一个场景中。 当我尝试访问http://localhost:49962/managescholars/ ,它显示错误 HTTP Error 403.14 – Forbidden The Web server is configured to not list the contents of this directory. 但使用http://localhost:49962/managescholars/Index工作正常。 同一控制器的其他动作方法也可以正常工作。 例如http://localhost:49962/managescholars/create 。 所有其他控制器也可以正常工作。 我尝试将以下内容添加到web.config中。 我也试过以管理员身份运行以下命令 %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir 但它们都没有奏效。 编辑: 我修改了我的路线。 他们看起来如下。 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”); routes.MapRoute( name: “ManageScholarLectures”, url: “Manage/Lectures/{userFriendlyName}”, […]

C#app中exception的含义:“不是合法的OleAut日期”?

有谁知道这意味着什么。 在C#winforms应用程序中获取此信息: 不是合法的OleAut日期

无法检索元数据 – MVC应用程序

我这样做是为了创建一个简单的MVC应用程序。 创建模型后,当我尝试添加控制器时,出现以下错误: 无法检索“MvcApplication.Models.Movie”的元数据。 键“attachdbfilename”的值无效。 有人可以告诉我为什么会收到此错误。 更新 :我看到了这一点,其中通过更改providerName提供了解决方案。 但在我的情况下,它已经是System.Data.SqlClient 。 以下是我的connectionStrings:

MSTest无法找到assembly体

我正在使用MSTest 我使用命令mstest /testsettings:local.Testsetting /testcontainer:folder\obj\Debug\test.dll 这是输出, 运行具有以下问题:警告:测试运行部署问题:程序集或模块’Microsoft.Practices。 未找到由测试容器’test.dll’直接或间接引用的Prism。 警告:测试运行部署问题:未找到测试容器“test.dll”直接或间接引用的程序集或模块“Project.Common.dll”。 警告:测试运行部署问题:未找到测试容器“test.dll”直接或间接引用的程序集或模块“Project.Infrastructure.dll”。 警告:测试运行部署问题:程序集或模块’Microsoft.Practices。 未找到由测试容器’test.dll’直接或间接引用的Prism。 我能做些什么让MSTest运行良好。