小编Pau*_*der的帖子

FirstOrDefault行为直接在LINQ语句中

好像我可能在语法中遗漏了一些简单的东西,但是我想直接从linq语句中获取FirstOrDefault的结果,而不必先将IEnumerable存储在临时变量中.像这样的东西:

var bestCar = from c in cars
              orderby c.Price
              select first c
Run Code Online (Sandbox Code Playgroud)

我知道第一个关键字实际上并不存在,但说明了我想要做的事情.我也知道我可以在括号中包含from ... select语句并直接调用FirstOrDefault,但我认为上面的语法更清晰,更易于阅读.

linq

17
推荐指数
2
解决办法
6832
查看次数

使用Capistrano配方将预编译的Rails 3.1资产上载到Amazon S3

我们有一个Rails 3.1应用程序,允许用户将照片上传到Amazon S3.由于我们在生产中使用S3,我想自动(上cap deploy)将预编译的资产(application.js和application.css&images)上传到我们的S3存储桶中.很简单.

超越设定 config.action_controller.asset_host = "http://assets.example.com"

简而言之,我正在寻找Capistrano工作"配方"的一些例子,但似乎找不到任何现代的(3.1资产管道兼容).我们成功预编制了资产但是如何将它们移到S3?而且,理想情况下,只有那些已经改变的?

当前"食谱"的"肉":

...

after "deploy:update_code", "deploy:pipeline_precompile"
before "deploy:finalize_update", "deploy:copy_database_config"

namespace :deploy do
  task :start do ; end
  task :stop do ; end
  task :restart, :roles => :app, :except => { :no_release => true } do
    run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
  end

  # copy database.yml into project
  task :copy_database_config do
    production_db_config = "/path_to_config/#{application}.yml"
    run "cp #{production_db_config} #{current_release}/config/database.yml"
    `puts "replaced database.yml with live copy"`
  end
  task :pipeline_precompile do
    run "cd …
Run Code Online (Sandbox Code Playgroud)

capistrano ruby-on-rails ruby-on-rails-3 asset-pipeline

17
推荐指数
2
解决办法
9253
查看次数

使用UrlHelper.Action方法生成URL时出现空引用异常

出于某种原因,当某些机器人访问该站点时,使用该UrlHelper.Action方法生成一个url 会引发一个null异常System.Web.HttpServerVarsCollection.Get.我做了一些调试,调用堆栈起源于尝试从HttpContextBase.Request.ServerVariables集合中获取'HTTP_X_ORIGINAL_URL' .

如果我直接从浏览器访问同一个地址 - 没问题.该页面是服务器,不记录任何错误.它似乎只发生在机器人访问时.

不确定它是否相关,但该网站刚刚迁移到IIS 7.5.仍在集成模式下使用.NET 2.0.

通过Reflector查看反转的代码,在Get方法中可以直接发生null异常的唯一地方是调用this._request.FetchServerVariables.好像没有正确设置完整的请求.

有没有其他人遇到这个问题或发现了一个解决方法?为什么在机器人访问时请求的设置不同?

更新:一些额外的调试表明HttpServerVarsCollection是Disposed,以及它的父HttpRequest对象.现在的问题是 - 如何在请求完成之前公开HttpContext.Current返回的Request对象?

HttpServerVarsCollection.Get方法

public override string Get(string name)
{
    if (!this._populated)
    {
        string simpleServerVar = this.GetSimpleServerVar(name);
        if (simpleServerVar != null)
        {
            return simpleServerVar;
        }
        this.Populate();
    }
    if (this._iis7workerRequest == null)
    {
        return this.GetServerVar(base.BaseGet(name));
    }
    string serverVar = this.GetServerVar(base.BaseGet(name));
    if (string.IsNullOrEmpty(serverVar))
    {
        // Only place null reference can happen
        serverVar = this._request.FetchServerVariable(name);
    }
    return serverVar;
}
Run Code Online (Sandbox Code Playgroud)

完整堆栈跟踪

NullReferenceException: …
Run Code Online (Sandbox Code Playgroud)

.net nullreferenceexception asp.net-mvc-2

17
推荐指数
1
解决办法
4329
查看次数

防止CSS中两个元素之间的换行符

对于我正在做的一些基本布局工作,我想要立即跟随价格的链接始终显示在与价格相同的行上.价格文本包含在<span class="price">标签中,而链接使用buy-link类,如下所示<a href="/buy" class="buy-link">Buy Now</a>.

我正在寻找可以自动防止spana标签之间断线的CSS,但我要么缺少某些东西,要么就是无法完成.我可以轻松地防止两个标签的换行- 但不能防止它们之间的换行.

我想避免使用手动将两个标签包装span在一起white-space: nowrap并尽可能使用纯CSS.

更新: HTML类似于以下内容.这不是真正的代码,而是非常相似.

<style>
    .price{ font-weight: bold; }
    .buy-link{ color: green; }
</style>

<span class="price">$50</span> <a href="/buy" class="buy-link">Buy Now</a>
Run Code Online (Sandbox Code Playgroud)

如果链接恰好位于页面边缘附近 - 或者在一个<div>或多个<table>浏览器中的块边缘将"立即购买"链接包装到下一行.分开这两个要素.

css whitespace

16
推荐指数
3
解决办法
3万
查看次数

使用YARD记录模型属性

我正在使用YARD为我的rails应用程序生成文档,使用makrdown作为脚本解析器.大多数文档功能都是开箱即用的.但是,我还想将模型属性记录为一个,记录模型上的可用属性列表和两个,以描述它们的语义含义.

我无法在YARD中找到任何特殊的支持,我基本上只是列出了类评论中的属性.有没有办法记录动态生成的模型属性,以便它们出现在文档中,如标准属性/方法?

PS我已经使用annodate-models gem在类列表的顶部生成一个基本的模式转储,但这不是我想要的.

ruby documentation yard

15
推荐指数
2
解决办法
4342
查看次数

使用多个CLLocationManager实例是否存在任何性能损失

我的应用程序中至少有两个控制器当前使用自己的CLLocationManager实例.我很好奇但是如果使用多个实例实际上会给手机增加额外的负担 - 超出了不同实例的额外内存.

iPhone会多次ping GPS硬件,还是使用某种调度方式,以便硬件被抽象出来并转发给所有听众?我正要编写自己的抽象层来处理多个观察者,但想检查是否有任何知识表明它没有必要.

iphone core-location cllocationmanager

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

始终渴望加载与实体的关联

是否可以在加载实体时始终急切加载关联.例如

class Book
  has_many :chapters
end

class Chapters
  belongs_to :book
end

book = Book.find_by_title('Moby Dick')
Run Code Online (Sandbox Code Playgroud)

我知道你可以在电话中急于加载找到ie.book = Book.find_by_title( 'Moby Dick', :include => :chapters)但在这种情况下,我知道每当我找到一本书时,我总是希望这些章节急切加载,而不需要记住:include =>参数.

ruby activerecord

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

你如何调用被覆盖的MSBuild目标

在MSBuild中,您可以覆盖<Target />自己的另一个文件.例如,只需通过定义具有相同名称的自己的Target,文件中包含的AfterBuild目标Microsoft.Common.targets:

<Target Name="AfterBuild">
    <!-- Do something different -->
</TargetName>
Run Code Online (Sandbox Code Playgroud)

你会看到这样一个音符:

在项目"XXXXX"中使用目标"AfterBuild"覆盖项目"C:\ Windows\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets"中的目标"AfterBuild".

有没有办法调用原始的AfterBuild目标?

我想这样做来检测某些复杂的默认目标,然后执行原始行为.像Build这样的许多目标暴露了可用于此的BuildDependsOn属性.许多其他人没有 - 我想在不完全复制其内容的情况下覆盖它们.

.net msbuild

11
推荐指数
1
解决办法
2545
查看次数

适用于流利课程的通用'TThis'

我正在构建一个流畅的接口,其中我有一个包含大量流畅逻辑的基类,以及一个添加了一些特殊行为的派生类.我面临的问题是从派生类型的实例调用时基类中的流畅方法的返回类型.在调用基类的方法之后,只有基类的方法仍然可用于进一步的流畅调用.

更改调用方法的顺序将有助于编译,但它使其可读性降低,这对于流畅的接口来说是有意义的.有没有办法为基类定义某种"This"类型,以便所有方法返回相同的类型.

public class Field<T>
{
    public Field<T> Name( string name )
    {
        _name = name;
        return this;
    }
}

public SpecialField<T> : Field<T>
{
    public SpecialField<T> Special(){ return this; }
}


// !!! Arrgh. Special is not a member of the Field<T> class.
var specialField = new SpecialField()
    .Name( "bing" )
    .Special();
Run Code Online (Sandbox Code Playgroud)

破解

我尝试通过执行类似下面的操作来解决它,但它无效C#:(但至少表达了我想如何编码接口.

public class Field<T,TThis> : TThis
    where TThis : Field<T,TThis>
{
    public TThis Name( string name ){...}
}

public SpecialField<T> : Field<T,SpecialField<T>>
{
    public TThis …
Run Code Online (Sandbox Code Playgroud)

c# generics fluent-interface fluent

11
推荐指数
1
解决办法
1353
查看次数

NSNumberFormatter是格式化NSDecimalNumber的唯一方法吗?

我正在使用NSDecimalNumber在Core Data中存储资金.我天真地使用stringWithFormat:首先要格式化值,后来意识到它不支持NSDecimalNumber而是格式化指针:(.所以在通过文档阅读之后我学会了使用NSNumberFormatter来获取我想要的格式.但这只是让我觉得"艰难的道路".有没有比这更简单的方法:?

NSNumberFormatter * formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle: NSNumberFormatterCurrencyStyle];
priceField.text = [formatter stringFromNumber: ent.price];
[formatter release];
Run Code Online (Sandbox Code Playgroud)

iphone cocoa objective-c

11
推荐指数
2
解决办法
8038
查看次数