众所周知,当我们调用类的构造函数时:
instance := TSomeClass.Create;
Run Code Online (Sandbox Code Playgroud)
Delphi编译器实际上做了以下事情:
它简单易懂.但我不太确定编译器如何处理第二步和第三步中的异常.
似乎没有明确的方法在D2010中使用RTTI构造函数方法创建实例.所以我在Spring Framework for Delphi中编写了一个简单的函数来重现创建过程.
class function TActivator.CreateInstance(instanceType: TRttiInstanceType;
constructorMethod: TRttiMethod; const arguments: array of TValue): TObject;
var
classType: TClass;
begin
TArgument.CheckNotNull(instanceType, 'instanceType');
TArgument.CheckNotNull(constructorMethod, 'constructorMethod');
classType := instanceType.MetaclassType;
Result := classType.NewInstance;
try
constructorMethod.Invoke(Result, arguments);
except
on Exception do
begin
if Result is TInterfacedObject then
begin
Dec(TInterfacedObjectHack(Result).FRefCount);
end;
Result.Free;
raise;
end;
end;
try
Result.AfterConstruction;
except
on Exception do
begin
Result.Free;
raise;
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
我觉得这可能不是100%正确.所以请告诉我方式.谢谢!
我希望优化我们为一些模型构建表单的方式,理想情况下我想从json-schema构建它们.
是否有一个gem或类似的东西可以让我将模型定义导出到json-schema?
奖励:通过验证.
奖励:建模关联关系.
我不是HTML/CSS的新手,虽然我之前从未创建过HTML电子邮件.
有什么好的在线资源我可以从中学习吗?
在电子邮件客户端方面,我需要考虑什么?
它们是否像浏览器一样显示HTML/CSS内容?(IE问题等)
我甚至不确定应该在哪里插入HTML/CSS!
我已经用尽了所有研究方法来解决这个问题,所以希望其他人会想到我没有做过的事情.
相对简单的设置,我有一个带有一些javascript的html页面,它对URL(在同一个域中)发出ajax请求,后台的java web应用程序执行其内容并返回部分html页面(没有html,头部或正文)标签,只是内容)应插入页面中的特定点.
一切听起来都很简单,我在IE,Firefox和Safari中使用的代码,但在Chrome中却没有.在Chrome中,目标元素最终为空,如果我查看Chromes开发人员工具中的资源请求,则响应内容也为空.
一切都非常令人困惑,我已经尝试了无数的东西来解决它,我只是出于想法.任何帮助将不胜感激.
var container = $('#container');
$.ajax({
type: 'GET',
url: '/path/to/local/url',
data: data('parameters=value&another=value2'),
dataType: 'html',
cache: false,
beforeSend: requestBefore,
complete: requestComplete,
success: requestSuccess,
error: requestError
});
function data(parameters) {
var dictionary = {};
var pairs = parameters.split('&');
for (var i = 0; i < pairs.length; i++) {
var keyValuePair = pairs[i].split('=');
dictionary[keyValuePair[0]] = keyValuePair[1];
}
return dictionary;
}
function requestBefore() {
container.find('.message.error').hide();
container.prepend('<div class="modal"><div class="indicator">Loading...</div></div>');
}
function requestComplete() {
container.find('.modal').remove();
}
function requestSuccess(response) {
container.empty();
container.html(response);
} …Run Code Online (Sandbox Code Playgroud) 我在测试控制器时遇到了困难.原来我的测试控制器看起来像这样:
SomethingController CreateSomethingController()
{
var somethingData = FakeSomethingData.CreateFakeData();
var fakeRepository = FakeRepository.Create();
var controller = new SomethingController(fakeRepository);
return controller;
}
Run Code Online (Sandbox Code Playgroud)
这对于大多数测试都很好,直到我得到了Request.IsAjaxRequest()代码的一部分.所以我不得不模拟HttpContext和HttpRequestBase.所以我的代码然后改为看起来像:
public class FakeHttpContext : HttpContextBase
{
bool _isAjaxRequest;
public FakeHttpContext( bool isAjaxRequest = false )
{
_isAjaxRequest = isAjaxRequest;
}
public override HttpRequestBase Request
{
get
{
string ajaxRequestHeader = "";
if ( _isAjaxRequest )
ajaxRequestHeader = "XMLHttpRequest";
var request = new Mock<HttpRequestBase>();
request.SetupGet( x => x.Headers ).Returns( new WebHeaderCollection
{
{"X-Requested-With", ajaxRequestHeader}
} );
request.SetupGet( x …Run Code Online (Sandbox Code Playgroud) 根据关于方面的Apache Solr文档,我可以使用键,因为:'当使用不同的排除项多次在同一个字段上进行分面时,这可能会有所帮助.
我需要它们,因为我希望有一个方面给我"最后一天","上周","上个月"选项.
但是,当我使用以下选项设置查询时:
http://URL/select?
...unrelated...
facet=true&
facet.date={!key=some_key}created&
f.some_key.facet.date.start=NOW/DAY-1DAY&
f.some_key.facet.date.end=NOW/DAY&
f.some_key.facet.date.gap=NOW/DAY+1DAY
...unrelated...
Run Code Online (Sandbox Code Playgroud)
Solr抱怨:
[exception] => org.apache.solr.common.SolrException:缺少必需参数:f.created.facet.date.start(或默认值:facet.date.start)
当我设置facet.date.start或f.created.facet.date.start时,它们将覆盖我的some_key(开始/结束/间隙)的字段,这是无用的,因为我需要多个键...任何人都可以点我在这方向的正确方向?由于我使用的库的限制,这需要在单个查询中完成.
有没有办法找出我使用的托管线程数(包括ThreadPool)?
当我通过GetProcess得到非托管线程的数量时,我有一个疯狂的数字(一开始就是21)
我在使用JPA/Hibernate(3.5.3)设置时遇到问题,我有一个实体,一个"帐户"类,它有一个子实体列表,"联系"实例.我正在尝试将Account的实例添加/删除到Account的List <Contact>属性中.
将新实例添加到集合中并调用saveOrUpdate(account)可以保持一切可爱.如果我然后选择从列表中删除联系人并再次调用saveOrUpdate,则SQL Hibernate似乎会产生涉及将account_id列设置为null,这违反了数据库约束.
我究竟做错了什么?
下面的代码显然是一个简化的摘要,但我认为它涵盖了问题,因为我在不同的代码中看到相同的结果,这真的是这个简单.
SQL:
CREATE TABLE account ( INT account_id );
CREATE TABLE contact ( INT contact_id, INT account_id REFERENCES account (account_id) );
Run Code Online (Sandbox Code Playgroud)
Java的:
@Entity
class Account {
@Id
@Column
public Long id;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "account_id")
public List<Contact> contacts;
}
@Entity
class Contact {
@Id
@Column
public Long id;
@ManyToOne(optional = false)
@JoinColumn(name = "account_id", nullable = false)
public Account account;
}
Account account = new Account();
Contact contact = new …Run Code Online (Sandbox Code Playgroud) 我不确定这是否恰当,但我认为这是一个有趣的问题.
有没有人在专业环境中实际使用短语DHTML?
前几天,我第一次看到了这个词,并且在想到它时感到不寒而栗.对我来说,动态HTML的首字母缩写只是听起来如此1999年,它让我回到了我第一次发现编程和Web开发的时代,并认为使用修改状态栏并使事物在页面上飞行的脚本非常棒.
我一个人从来没有使用过这句话,并且永远不会梦想在专业的环境中对客户或大学说这些,因为我觉得有一个业余和过时的耻辱.
你的想法是什么?
我有一些数据库信息显示在页面上.
我正在使用一个使用$_GET['page']url中的变量的分页类.当您单击其他分页锚标记时,它将更改$_GET['page']为网址中的新数字并显示相应的结果.
我有使用$_GET['searchby']和$_GET['search_input']变量的排序和搜索功能.用户在使用GET的表单上输入搜索条件.然后将变量放入url中,以便显示正确的结果.
我遇到的问题是,每当我点击分页链接时,它会将$_GET['page']变量添加到URL的末尾并删除$_GET['searchby']或$_GET['search_input'].当我提交搜索表单,它增加了$_GET['searchby']和$_GET['search_input']而擦除$_GET['page'].
如何使用锚标记和搜索/排序形式将GET变量添加到当前页面url的末尾而不删除任何现有的GET变量,但如果它们是相同的GET变量名,则覆盖它们?
html ×2
javascript ×2
.net ×1
ajax ×1
asp.net-mvc ×1
c# ×1
delphi ×1
delphi-2010 ×1
dhtml ×1
forms ×1
get ×1
hibernate ×1
html-email ×1
java ×1
jpa ×1
jpa-2.0 ×1
jquery ×1
json ×1
jsonschema ×1
mocking ×1
orm ×1
pagination ×1
php ×1
rtti ×1
ruby ×1
solr ×1
threadpool ×1
unit-testing ×1