我正在使用jQuery的自动完成插件来获得简单的搜索表单.我无法将我的JSON对象数据转换为数组以供自动完成使用.
我的代码:
var listOfOrderedByNames = getAutocompleteData();
$('#OrderedBy').autocomplete(listOfOrderedByNames);
function getAutocompleteData() {
var output;
$.getJSON('AJAX/GetOrderedByNames', function(data) {
$.each(data, function(index, optionData) {
output += optionData + "|";
});
});
return output;
}
Run Code Online (Sandbox Code Playgroud)
我返回的JSON数据如下所示:
["Jimmy","John", "Etc",null]
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它看起来像我从该getAutocompleteData函数返回的是一个空字符串,我不知道有什么问题.
请帮忙!
我有以下字符串,可能包含约100个条目:
String foo = "{k1=v1,k2=v2,...}"
Run Code Online (Sandbox Code Playgroud)
我正在寻找以下功能:
String getValue(String key){
// return the value associated with this key
}
Run Code Online (Sandbox Code Playgroud)
我想在不使用任何解析库的情况下执行此操作.什么想法快速的东西?
我一直想知道工厂模式和存储库模式是否需要在域驱动设计项目中携手并进?
我问的原因是我这样做的方式是这样的:
GUI - > ClassFactory - > ClassProduct(在域模型中) - > ClassProductRepository - > Datasource
GUI调用ClassFactory将GUI与业务逻辑分开.ClassProduct调用ClassProductRepository以将业务逻辑与数据源分开.
将这些设计模式与域驱动设计一起使用是错误的方法吗?如果是,请说明您对此主题的意见.
这让我感到非常奇怪,我在发现这个问题之前花了一些时间检查代码中的错误
"将数据库表或视图中的副本输出到文件.如果指定现有文件,则会覆盖该文件.提取数据时,请注意bcp实用程序将空字符串表示为null,将空字符串表示为空字符串. " (来自http://msdn.microsoft.com/en-us/library/ms162802.aspx)
显然,这让我可以解决我的问题,但任何人都可以想到或者有人知道为什么会出现这种情况的原因吗?
在什么情况下(使用场景)你会选择编写扩展而不是对对象进行子类化?
<完全披露:我不是MS员工; 我个人不知道Mitsu Furota; 我知道这里提到的开源Componax库的作者,但我与他没有任何业务往来; 我不是在创建或计划使用扩展创建任何商业产品:总之:这篇文章来自与我试图(不断)意识到"最佳实践"相关的纯粹智力上的好奇心
我发现扩展方法的想法很"酷",显然你可以用它们做"远远"的事情,就像你在Mitsu Furota(MS)博客文章链接文本中的许多例子一样.
一位私人朋友写了开源Componax图书馆链接文本,那里有一些非凡的设施; 但他完全控制着他的小公司,完全控制代码指南,每一行代码都"通过他的手".
虽然这是我的猜测:我认为/猜测其他问题可能会在大中型软件团队的情况下重新使用Extensions.
在链接文本中查看MS的指南,您会发现:
通常,您可能会比实现自己的方法更频繁地调用扩展方法....一般情况下,我们建议您谨慎实施扩展方法,并且仅在必要时实施.必要时,必须扩展现有类型的客户端代码应通过创建从现有类型派生的新类型来实现.有关更多信息,请参见继承(C#编程指南)....当编译器遇到方法调用时,它首先在类型的实例方法中查找匹配项.如果未找到匹配项,它将搜索为该类型定义的任何扩展方法,并绑定到它找到的第一个扩展方法.
在Ms的链接文本中:
扩展方法没有特定的安全漏洞.它们永远不能用于模拟类型上的现有方法,因为所有名称冲突都被解析为有利于类型本身定义的实例或静态方法.扩展方法无法访问扩展类中的任何私有数据.
对我来说显而易见的因素包括:
我假设你不会写一个扩展,除非你期望它被非常普遍地使用.另一方面:难道你不能对子类别说同样的话吗?
知道我们可以将它们编译成一个单独的dll,并添加已编译的dll,并引用它,然后使用扩展:是"酷",但是这"平衡"编译器中固有的成本首先必须检查才能看到如果实例方法如上所述定义.或者,在"名称冲突"的情况下使用静态调用方法来确保调用扩展而不是实例定义的成本?
频繁使用Extensions会影响运行时性能或内存使用:我不知道.
因此,与子分类相比,我会感谢您的想法,或了解您如何/何时做或不做,使用扩展.
比尔,谢谢
我必须将DefaultListModel(在列表框中)的所有元素放入一个List<Object>.我怎么能用Java做到这一点?
我正在写一个NHibernate标准,选择支持分页的数据.我正在使用COUNT(*) OVER()SQL Server 2005(+)中的表达式来获取可用行的总数,正如Ayende Rahien 所建议的那样.我需要这个数字才能计算出总共有多少页面.这个解决方案的优点在于我不需要执行第二个查询来获取行计数.
但是,我似乎无法设法编写工作标准(Ayende只提供HQL查询).
这是一个SQL查询,显示我想要的东西,它工作得很好.请注意,我故意省略了实际的分页逻辑以关注问题:
SELECT Items.*, COUNT(*) OVER() AS rowcount
FROM Items
Run Code Online (Sandbox Code Playgroud)
这是HQL:
select
item, rowcount()
from
Item item
Run Code Online (Sandbox Code Playgroud)
请注意,该rowcount()函数在自定义NHibernate方言中注册,并COUNT(*) OVER()在SQL中解析.
要求是使用条件表达查询.不幸的是,我不知道如何做到正确:
var query = Session
.CreateCriteria<Item>("item")
.SetProjection(
Projections.SqlFunction("rowcount", NHibernateUtil.Int32));
Run Code Online (Sandbox Code Playgroud)
每当我添加投影时,NHibernate都不会选择item(就像没有投影一样),就rowcount()在我真正需要的时候.此外,我似乎无法item整体投影,只有它的属性,我真的不想列出所有这些.
我希望有人能解决这个问题.不管怎么说,还是要谢谢你.
我们正在开发一个基于MFC的大型应用程序与少数托管(.NET)加载项的集成.与这些加载项的通信是通过COM完成的.
从历史上看,我们刚刚使用注册表将这些加载项(作为COM服务器)提供给应用程序.但是,现在我们正在尝试使用无注册的COM互操作来实现这一目标.
我们希望这些加载项能够与运行应用程序的目录位于一个单独的目录中 - 最好是在任何地方.但是,由于无法解析依赖程序集,我们显然遇到了服务器对象实例化的问题,这些程序集也存在于COM服务器DLL的目录中.
"老式"COM互操作在加载目标程序集时使用LoadFrom上下文来处理此问题.但激活上下文机制似乎并没有这样做.
有谁知道如何让这个工作?目前尚不清楚我们是否可以在模块的SxS清单中识别依赖程序集,或者我们是否可以以不同方式创建激活上下文?
感谢您的任何想法/提示!
杰夫
我有一些代码在一个特定的行上生成了大量的ArgumentExceptions(这是在不同的开发人员的代码中,所以我不能只改变它),然后被适当地捕获和处理.
我正在尝试调试ArgumentExceptions,它们发生在代码的不同部分(然后被捕获和处理,所以我不能只看未处理的异常).
有没有办法忽略源自该特定其他代码行的ArgumentExceptions,同时仍然打破在别处抛出的ArgumentExceptions?
我有一个WinForm应用程序,其网格包含每行的ComboBox.所有都绑定到同一个集合(该集合可能会改变,这就是为什么我不希望每个Combo都有不同的集合,也是内存成本).问题是,当我在一个组合中选择一个对象时,它会在每个组合中更改所选对象.这是一个可以运行并轻松复制的代码.
public Form1()
{
InitializeComponent();
this.comboBox1 = new System.Windows.Forms.ComboBox();
List<int> numList = new List<int>(){1,2,3,4};
this.comboBox1.FormattingEnabled = true;
this.comboBox1.Location = new System.Drawing.Point(33, 169);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(126, 21);
this.comboBox1.TabIndex = 3;
this.comboBox1.DataSource = numList; // BINDING TO NUMLIST
this.comboBox2 = new System.Windows.Forms.ComboBox();
this.comboBox2.FormattingEnabled = true;
this.comboBox2.Location = new System.Drawing.Point(243, 367);
this.comboBox2.Name = "comboBox2";
this.comboBox2.Size = new System.Drawing.Size(126, 21);
this.comboBox2.TabIndex = 4;
this.comboBox2.DataSource = numList; // BINDING TO NUMLIST ( THE SAME LIST
this.Controls.Add(this.comboBox2);
this.Controls.Add(this.comboBox1);
}
Run Code Online (Sandbox Code Playgroud)
只需创建一个表单并粘贴ComboBox 1和2的声明.任何想法如何发生这种情况.我的意思是如果它是一个简单的列表,它不会跟踪所选对象.DataSource背后发生了什么?
.net ×2
c# ×2
java ×2
sql-server ×2
autocomplete ×1
bcp ×1
c#-3.0 ×1
com ×1
criteria ×1
debugging ×1
exception ×1
interop ×1
jquery ×1
json ×1
nhibernate ×1
null ×1
paging ×1
projection ×1
regfreecom ×1
sql ×1
sxs ×1
text-parsing ×1
winforms ×1