我的团队有一个我们使用 Adobe LiveCycle 设计器创建的模板 (XDP)。
情况:
作为更大升级的一部分,我们正在用此 LiveCycle 表单替换旧的 Acrobat 表单(XFDF 格式)
当前的 Acrobat 表单使用基本数据动态填充并以 PDF 格式交付给用户(用户单击链接,并在其机器上打开一个预填充有基本人口统计详细信息的 PDF)
当前流程类似于:用户点击,.NET 应用程序检索数据,.NET 应用程序从文件系统检索 PDF,.NET 应用程序将数据序列化为 XFDF 形式的模板,ASP.NET 应用程序将 HTTP 响应发送回 XFDF 中的用户格式,用户在 Adobe Reader 中查看 PDF
我们希望使用新的 XDP 格式保持一个大致类似的过程。
为了记录在案,我们不要有机会获得的LiveCycle服务,做这种类型的工作(如劳务)。也就是说,出于以下几个原因,我们希望在 .NET 中创建这种类型的序列化:我们的 LiveCycle 许可证有限,并且由于它们在企业中的位置,很难访问 LiveCycle 服务。
任何想法(甚至“停止这样做,你疯了”)都值得赞赏。
如果客户要求我完成整个项目的预计完成时间,可以使用Scrum吗?
使用例如(可怕的)瀑布方法我将使用技术规范来进行半估计.
什么是ContextBoundObject用的?文档提到"上下文",似乎是以编程方式定义的,但没有给出任何解释.
我尝试过以下方法:
(这实际上是针对fancybox,因为叠加层没有显示在chrome/safari中:
$("#fancy_overlay").css({<br />
'background-color': opts.overlayColor,<br />
'opacity': opts.overlayOpacity,<br />
'-moz-opacity': opts.overlayOpacity,<br />
'-khtml-opacity': opts.overlayOpacity,<br />
'-webkit-opacity:' : opts.overlayOpacity<br />
}).show();
Run Code Online (Sandbox Code Playgroud)
而且还没什么(在chrome/safari中)
我究竟做错了什么?
功能签名:
char * errMessage(int err);
我的代码:
[DllImport("api.dll")] internal static extern char[] errMessage(int err); ... char[] message = errMessage(err);
这会返回一个错误:
Cannot marshal 'return value': Invalid managed/unmanaged type combination.
我究竟做错了什么?谢谢你的帮助.
首先,我找到了异常的解决方案.我更好奇为什么它产生了它所做的特定异常.
在我的场景中,我正在向ListBox中添加一个POCO,如下所示:
myListBox.Items.Add(myPOCO);
Run Code Online (Sandbox Code Playgroud)
这产生了一个OutOfMemoryException
.问题是ToString
POCO正在返回null
.我添加了一个string.IsNullOrEmpty
检查,以便在null时返回"安全"值,异常消失.
为什么这会生成一个OutOfMemoryException
而不是其他东西(比如说a NullReferenceException
)?
编辑:项目在for循环中添加.
完整的调用堆栈(已删除公司特定的引用)如下所示.有一点需要注意 - 调用它时列表框为空.
System.OutOfMemoryException was unhandled
Message="List box contains too many items."
Source="System.Windows.Forms"
StackTrace:
at System.Windows.Forms.ListBox.NativeAdd(Object item)
at System.Windows.Forms.ListBox.ObjectCollection.AddInternal(Object item)
at System.Windows.Forms.ListBox.ObjectCollection.Add(Object item)
at <FORM>_Load(Object sender, EventArgs e) in <PATH>\<FORM>.cs:line 52
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ContainerControl.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at …
Run Code Online (Sandbox Code Playgroud) 我试图在鼠标悬停在树视图节点上时显示工具提示.但工具提示没有显示出来.
这是我的代码:
private void treeView1_MouseHover(object sender, EventArgs e)
{
toolTip1.RemoveAll();
TreeNode selNode = (TreeNode)treeView1.GetNodeAt(Cursor.Position);
if (selNode != null)
{
if (selNode.Tag != null)
{
Product selProduct = selNode.Tag as Product;
if (selProduct != null)
{
toolTip1.SetToolTip(treeView1, selProduct.ProductName + "\n" + selProduct.ProductCategory.ToString());
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我应该检查什么?
我正在努力提高短语的搜索功能(在我们的案例中是电影标题),目前正在查看SQL Server 2008全文搜索,它提供了我们想要的一些功能:
然而,排名算法似乎证明是有问题的,使用FREETEXTTABLE
搜索项并提取RANK
字段.例如,当用户输入"saw"时,我们在目录中得到的结果是:
RANK | Title
---------------------------------------------------------------------
180 | The Exorcist: The version you've never seen
180 | Saw IV
180 | Saw V
180 | Anybody Here Seen Jeannie?
180 | Seeing Red
Run Code Online (Sandbox Code Playgroud)
所有这些都具有相同的等级,即使一个人清楚地知道第二和第三个条目是比其他词干术语更好的匹配.
同样输入"moon"会产生以下结果:
RANK | Title
---------------------------------------------------------------------
144 | Pink Floyd - The Dark Side of the Moon
144 | Fly Me To The Moon 3D
144 | Twilight: New Moon
144 | Moon
Run Code Online (Sandbox Code Playgroud)
虽然这里没有词干匹配,但对于一个人而言,"月亮"的最佳匹配是"月亮",而不是仅包含它作为标题的一部分的更长的标题,而FTS将它们排在同一位置.
我猜测它可能与SQL Server排序结果的方式有关,它将词干和同义词视为与原始术语具有相同权重,并且考虑到排名的词密度,这对于文本的长段落是好的,但并不适用于像这样的短语.不幸的是,我开始认为FTS不适合这项工作.
我真的不想重新发明轮子,那么是否有任何现有的搜索解决方案可以用于标题并提供良好的排名和词干/词库功能?如果它有一个拼写检查器来实现像Google这样的"你是不是......"这样的功能也很好,所以"saww"会被修正为"saw"和"mon"到"moon"等等.
如何使用以下属性生成长度最多为12个字符的唯一密钥:姓名,父亲姓名,母亲姓名,出生日期,出生地.
提前致谢 :)
对于使用非消费类应用内购买的基本应用,有没有人想出使用SKPaymentQueue的最佳做法restoreCompletedTransactions
?
我知道建议始终注册一个事务观察器来接收返回到应用程序的待处理事务,但这是一个不同的问题.看起来restoreCompletedTransactions
应用程序必须主动决定何时对客户已经进行的所有购买进行轮询.
据我所知,该方法旨在检索可能已丢失的购买.例如,客户可能会以这样的方式安装应用程序或将应用程序移动到新设备,其中应用程序的先前付款的本地记录丢失或重置.
我不清楚的是如何以可靠的方式自动检测这种情况(即如何决定何时轮询丢失的购买).我不想搞砸这一点,并且有可能拒绝客户访问他们已经支付的功能.
与此同时,我不希望restoreCompletedTransactions
每次应用程序启动只是为了安全,并且基本上回复了我已经知道的99.9%的交易.(除了应用内购买,我的应用并不需要任何网络连接.)
Apple文档澄清了客户不会再次因他们已经进行的任何非消费性购买而被收费.如果他们尝试重新购买,则仍应将付款交易发送至应用.
最糟糕的情况是,客户可以通过这种方式恢复购买,但我仍然希望避免让他们走上类似于重新购买他们已经支付的东西的道路.