问题列表 - 第29055页

如何在Delphi 2010中使用RTTI创建对象实例?

众所周知,当我们调用类的构造函数时:

instance := TSomeClass.Create;
Run Code Online (Sandbox Code Playgroud)

Delphi编译器实际上做了以下事情:

  1. 调用静态NewInstance方法来分配内存并初始化内存布局.
  2. 调用构造函数方法来执行类的初始化
  3. 调用AfterConstruction方法

它简单易懂.但我不太确定编译器如何处理第二步和第三步中的异常.

似乎没有明确的方法在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%正确.所以请告诉我方式.谢谢!

delphi rtti delphi-2010

14
推荐指数
1
解决办法
3863
查看次数

如何将rails模型导出到json模式?

我希望优化我们为一些模型构建表单的方式,理想情况下我想从json-schema构建它们.

是否有一个gem或类似的东西可以让我将模型定义导出到json-schema?

奖励:通过验证.

奖励:建模关联关系.

ruby json ruby-on-rails jsonschema ruby-on-rails-plugins

5
推荐指数
1
解决办法
1993
查看次数

HTML电子邮件指南

我不是HTML/CSS的新手,虽然我之前从未创建过HTML电子邮件.

  • 有什么好的在线资源我可以从中学习吗?

  • 在电子邮件客户端方面,我需要考虑什么?

  • 它们是否像浏览器一样显示HTML/CSS内容?(IE问题等)

我甚至不确定应该在哪里插入HTML/CSS!

html html-email

3
推荐指数
1
解决办法
993
查看次数

jQuery $ .ajax响应为空,但仅限Chrome

我已经用尽了所有研究方法来解决这个问题,所以希望其他人会想到我没有做过的事情.

相对简单的设置,我有一个带有一些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)

javascript ajax jquery google-chrome

8
推荐指数
1
解决办法
7457
查看次数

asp.net mvc如何正确测试控制器

我在测试控制器时遇到了困难.原来我的测试控制器看起来像这样:

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)

asp.net-mvc unit-testing mocking

5
推荐指数
1
解决办法
915
查看次数

Solr多个方面的日期

根据关于方面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(开始/结束/间隙)的字段,这是无用的,因为我需要多个键...任何人都可以点我在这方向的正确方向?由于我使用的库的限制,这需要在单个查询中完成.

solr faceted-search

5
推荐指数
1
解决办法
4979
查看次数

C#如何统计AppDomain中的托管线程?

有没有办法找出我使用的托管线程数(包括ThreadPool)?

当我通过GetProcess得到非托管线程的数量时,我有一个疯狂的数字(一开始就是21)

.net c# multithreading threadpool

9
推荐指数
1
解决办法
2011
查看次数

Hibernate使用orphanRemoval触发约束违规

我在使用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)

java orm hibernate jpa jpa-2.0

15
推荐指数
1
解决办法
1万
查看次数

有人真的再使用短语DHTML吗?

我不确定这是否恰当,但我认为这是一个有趣的问题.

有没有人在专业环境中实际使用短语DHTML?

前几天,我第一次看到了这个词,并且在想到它时感到不寒而栗.对我来说,动态HTML的首字母缩写只是听起来如此1999年,它让我回到了我第一次发现编程和Web开发的时代,并认为使用修改状态栏并使事物在页面上飞行的脚本非常棒.

我一个人从来没有使用过这句话,并且永远不会梦想在专业的环境中对客户或大学说这些,因为我觉得有一个业余和过时的耻辱.

你的想法是什么?

html javascript dhtml

7
推荐指数
1
解决办法
490
查看次数

如何使用带有php的表单将GET变量添加到当前页面url的末尾?

我有一些数据库信息显示在页面上.

我正在使用一个使用$_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变量名,则覆盖它们?

php forms pagination get

2
推荐指数
1
解决办法
4235
查看次数