有什么方法可以在不赋予expando属性的情况下唯一标识一个函数?我一直在使用“ toString()”来标识函数,但是当两个函数相同时,它们就会冲突。
下面的示例代码重现该问题。在我的实际代码中,关联数组“ myfunctions”的键也是从其他参数构建的。我不想生成无意义的密钥,因为使用此代码的开发人员需要能够在不持有对某些随机密钥的引用的情况下,随时重建此密钥。
var myfunctions = {};
(function(){
var num = 1;
function somefunc() {
alert(num);
}
myfunctions[somefunc.toString()] = somefunc;
})();
(function(){
var num = 2;
function somefunc() {
alert(num);
}
myfunctions[somefunc.toString()] = somefunc;
})();
for (var f in myfunctions) {
myfunctions[f]();
}
Run Code Online (Sandbox Code Playgroud)
运行此代码时,仅触发一个警报,并且始终显示消息“ 2”。
我又用模板卡住了.
说,我想实施一个guicell系统.每个guicell都可以包含许多儿童guicell.到目前为止,树结构如此.在std-c ++中,我会选择sthg.喜欢:
template <typename T>
class tree
{
public:
void add (T *o) { _m_children.push_back (o); }
void remove (T *o) { ... };
list<T*> _m_children;
};
class _cell : public tree<_cell>
{
public:
_cell () { x = 0; y =0; }
long x,y;
};
Run Code Online (Sandbox Code Playgroud)
但是现在我想要更进一步,如果编码人员愿意的话,让细胞可以参考.所以我基本上为此目的实现了一个refTree类,它也只需要指针(_cell*)作为输入.
template <typename T>
class refTree
{
public:
void add (T *o) { _ref<T> r = o; _m_children.push_back (r); }
void remove (T *o) { ... }
list<_ref<T> > _m_children;
};
Run Code Online (Sandbox Code Playgroud)
这仍然工作正常.运用
class …Run Code Online (Sandbox Code Playgroud) 我正在使用Fluent NHibernate和一个外部'hibernate.cfg.xml'文件.
以下是我收到错误的配置代码:
var configuration = new Configuration();
configuration.Configure();
_sessionFactory = Fluently.Configure(configuration)
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Template>())
.BuildSessionFactory();
return _sessionFactory;
Run Code Online (Sandbox Code Playgroud)
但是当NHibernate尝试配置时,我遇到了错误:
配置持久层期间发生异常.
内部例外说:
未配置ProxyFactoryFactory.使用一个可用的NHibernate.ByteCode提供程序初始化session-factory配置节的'proxyfactory.factory_class'属性.
我用谷歌搜索,根据我发现的一些解决方案,我做了以下更改:
将以下dll添加到我的app bin:
Castle.Core.dll,Castle.DynamicProxy2.dll,NHibernate.ByteCode.Castle.dll
在hibernate.cfg.xml中添加了follwing属性
<property name ="proxyfactory.factory_class"> NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle </ property>
但我仍然得到同样的例外.
我有一个长期运行的msbuild脚本,我正在努力加快速度.有没有办法让msbuild记录每个目标所花费的时间?
我看过xml记录器,但它只输出总时间.
我是否必须制作自己的记录器,或者是否有内置的东西?
我已经看到了所有这些'网格'类型的CSS框架,我仍然有点迷惑他们做了什么.
我知道它们可以帮助您快速创建页面,因为已经为您定义了布局,但这些框架是否会使某些事情变得更加困难?
我正在为我自己的日常任务编写一个小的命令行工具,并且从我用于配置的XML文件中读取时遇到问题.根据示例,我使用此代码加载Linq-to-XML的XML文件.
XDocument doc = XDocument.Load("SearchSources.xml");
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是当我将我的应用程序和XML"部署"到c:\ windows\system32以便于访问时,当我尝试从RUN提示符启动文件时它将无法工作(例如,运行=>工具-commands)因为它正在寻找相对于我启动应用程序的地方的XML.
我显然可以将路径更改为完整路径,例如代码中的c:\ windows\system32\SearchSources.xml,但这会阻止我在Visual Studio中通过F5运行它.
编辑:我试图在代码中执行此操作,而不是在将应用程序部署到其他位置时修改配置文件.
我有一个页面的问题,我正在尝试使用colorbox(一种jQuery的灯箱)工作.由于document.body存在nullFireFox(3.5.3),它显然不起作用.在颜色框工作的Safari(4.0.3)中不是这种情况.
跳出来的东西是(我正在使用Drupal 6)drupal附加了一个脚本标记,用于在页面的最底部,在结束体和html标记下面设置一些JavaScript变量.否则我没有看到问题.不幸的是,我很难让它不这样做.可能是因为这导致FF与身体有问题吗?
在Firefox中使用colorbox的示例文件确实有效(并且在document.body那里定义).
有没有什么方法可以使用jQuery来重新填充document.body属性$(),或者我应该继续敲打drupal而不是将脚本标记放在html标签之外(说起来容易做起来难)?
为了澄清的document.body是null页面加载完成后也.这是一个Firebug控制台捕获:
>>> document.body
null
>>> $().attr('body')
null
Run Code Online (Sandbox Code Playgroud) 这里的东西对我来说不合适,所以我想要社区的意见 - 也许我正在以错误的方式接近这个......
问:使用传统的基础架构日志框架(如log4net)来记录业务事件是否合适?
当我说商业活动时,我的意思是我想要一个像这样的全球日志:
xx:xx Customer A purchased widget B.
xx:xx Widget B was dispatched from warehouse.
xx:xx Customer B payment declined.
Run Code Online (Sandbox Code Playgroud)
大多数传统基础结构日志记录框架的事件级别如下:
FATAL
ERROR
WARN
INFO
DEBUG
Run Code Online (Sandbox Code Playgroud)
当然,这些消息并不适合这种情况.最好的描述是INFO,但当然这些都是重要事件,而INFO的重要性非常低.
我仍然喜欢这个'日志'(例如,我不希望每次想看到它时都要从我的业务对象中提取它)
在我看来,我有两个选择:
1)使用像log4net这样的框架,并为此定义一个特殊的记录器(并且考虑到它感觉不对的事实).
2)提供不依赖传统日志服务的服务.
我倾向于2.在类似的情况下,其他人做了什么?
谢谢!
我有以下HTMl:
<input id="brandID" name="brandID" type="hidden" value="" />
<select id="selectList" class="textfield70pc" name="selectList">
<option selected="" value="221">A</option>
<option value="4673">B</option>
</select>
Run Code Online (Sandbox Code Playgroud)
在更改选择框的值后,我需要填充此输入字段.我尝试过类似的东西,但它不起作用.
jQuery('#selectList').change(function(){
jQuery('#brandID').attr('value', '123123');
});
Run Code Online (Sandbox Code Playgroud)
有人建议吗?
更新
这有效:
document.getElementById('brandID').value = '123'
Run Code Online (Sandbox Code Playgroud)
但我想使用jQuery.
假设我已将xml存储在数据库中.它包含一个联系人列表,如下所示:
<Person>
<Name>Irwin</Name>
<Address>Home, In a place</Address>
<Contact type="mobile">7771234</Contact>
<Contact type="home">6311234</Contact>
<Contact type="work">6352234</Contact>
<Contact type="fax">6352238</Contact>
</Person>
Run Code Online (Sandbox Code Playgroud)
它存储在sql server数据库的xml列中,具有以下结构:
TABLE [Contacts](
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[Info] [xml] NOT NULL,
[Status] [tinyint] NOT NULL,
[CreateTime] [datetime] NOT NULL,
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
我想编写一个查询,将Contact元素转换为新表的行,与Contacts表的ID字段匹配.
我试过这个:
SELECT Cast(Request.query('/Person/Contact/text()') as varchar(100)) as [Number], ID
FROM Contacts
Run Code Online (Sandbox Code Playgroud)
但它从列中的给定xml片段中提取所有数据,并将其与该行的ID一起放在一行中,如下所示:
编号,ID
7771234631123463522346352238,1500
当我想得到的是这个:
编号,ID
7771234,1500
6311234,1500
6352234,1500
6352238,1500
你能为我指出正确的方向吗?