问题列表 - 第27398页

"CreateMap"语句应该放在哪里?

我经常使用AutoMapper将模型(域)对象映射到ViewModel对象,然后由我的视图以模型/视图/视图模型模式使用.

这涉及许多"Mapper.CreateMap"语句,这些语句都必须执行,但只能在应用程序的生命周期中执行一次.

从技术上讲,我应该将它们全部保存在某个静态方法中,从我的Application_Start()方法调用它(这是一个ASP.NET MVC应用程序).

但是,在一个中心位置将许多不同的映射问题组合在一起似乎是错误的.

特别是当映射代码变得复杂并涉及格式化和其他逻辑时.

是否有更好的方法来组织映射代码,使其与所关注的ViewModel保持接近?

(我提出了一个想法 - 在每个ViewModel上有一个'CreateMappings'方法,在BaseViewModel中,在实例化时调用此方法.但是,由于该方法只应在应用程序生命周期中调用一次,因此需要一些额外的逻辑缓存已调用CreateMappings方法的ViewModel类型列表,然后仅在必要时为不在该列表中的ViewModel调用它.)

asp.net-mvc mvvm separation-of-concerns automapper

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

从字典中的字符串创建NSString

我有一个NSDictionary,其中键和值都是NSStrings,我想以它们的形式从它们创建一个NSString

Key1: Value1
Key2: Value2
Run Code Online (Sandbox Code Playgroud)

这样做的最佳方法是什么?

iphone cocoa objective-c

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

我应该使用实体框架而不是原始ADO.NET

我是CSLA和实体框架的新手.我正在创建一个新的CSLA/Silverlight应用程序,它将取代已有12年历史的Win32 C++系统.旧系统使用自定义DCOM业务对象库并使用ODBC来访问SQL Server.新系统不会立即取代旧系统 - 它们必须在未来几年内与同一数据库共存.

起初我认为EF是最先进和最好的方式.在制作一个小型EF模型并且只有2个CSLA可编辑的根对象(我最终会有数百个对象,因为我的数据库有800多个表)时,我正在质疑EF的使用.

在当前的系统中,我需要多次对查询进行精细的细节性能调优,因为我可以100%控制生成的SQL.但是在EF看来,在幕后发生的这么多事情让我失去了控制权.像http://toomanylayers.blogspot.com/2009/01/entity-framework-and-linq-to-sql.html这样的文章并没有帮助我对EF的印象.

由于LINQ to EF,人们似乎喜欢EF,但由于我的标准在客户端和服务器之间作为标准对象传递,因此我似乎可以在没有LINQ的情况下轻松构建查询.我在WCF RIA中了解到有查询投影(或类似的东西)我可以做客户端LINQ,它在转换为实际SQL之前会移动到服务器,所以在这种情况下我可以看到EF的好处,但不是CSLA的好处.

如果我使用原始ADO.NET,我会在5年后后悔自己的决定吗?

最近有没有其他人做过这个选择,你走哪条路?

csla entity-framework

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

获取int中使用的位长度

如果你有二进制数10110我怎么能让它返回11111?例如,在第一个1之后将所有位设置为1的新二进制数,下面列出了一些类似的例子:

101应返回111(3位长度)011应返回11(2位长度)11100应返回11111(5位长度)101010101应返回111111111(9位长度)

如何在Java中获得最简单的方法?我可以想出一些方法,但它们不是很"漂亮".

java binary int bit-manipulation

8
推荐指数
3
解决办法
6087
查看次数

创建线程不接受成员函数

我正在尝试为网络编程创建一个类.这将创建一个带有线程的通用套接字.

但是当我尝试使用createthread()创建线程时.第三个参数是产生错误.从网上我开始知道我不能使用成员函数作为createthread()的参数.

我能做到这一点吗?

c++ windows function-pointers callback

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

旋转锁是如何在引擎盖下实现的?

这是一个锁,一次只能由一个执行线程持有.尝试通过另一个执行线程获取锁定使得后者循环直到锁定被释放.

当两个线程试图在同一时间获取锁时,它如何处理?

我认为这个问题也适用于其他各种互斥实现.

language-agnostic concurrency mutex spinlock

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

Strtotime()不适用于dd/mm/YYYY格式

我非常喜欢这个strtotime()功能,但是用户手册没有提供支持的日期格式的完整描述.strtotime('dd/mm/YYYY')不起作用,它只适用于mm/dd/YYYY格式.

如果我有dd/mm/YYYY格式化日期,我该如何将其转换为YYYY-mm-dd?我可以通过使用explode()函数来实现,但我认为有更好的解决方案.

php

159
推荐指数
5
解决办法
30万
查看次数

更改工作目录

我在WinXP机器上安装了Erlang.因此,我用"werl.exe"来使用它.问题是,我想更改werl启动的默认文件夹.我找不到可以让我这样做的选项,虽然我知道必须有类似的东西.有人可以帮忙吗?

erlang

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

如何编写RSpec测试来对这个有趣的元编程代码进行单元测试?

这是一些简单的代码,对于指定的每个参数,将添加以该参数命名的特定get/set方法.如果你写attr_option :foo, :bar,那么你将看到#foo/foo=#bar/bar=实例方法Config:

module Configurator
  class Config
    def initialize()
      @options = {}
    end

    def self.attr_option(*args)
      args.each do |a|
        if not self.method_defined?(a)
          define_method "#{a}" do
            @options[:"#{a}"] ||= {}
          end

          define_method "#{a}=" do |v|
            @options[:"#{a}"] = v
          end
        else
          throw Exception.new("already have attr_option for #{a}")
        end
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.我想写一些RSpec测试来验证这段代码实际上正在做它应该做的事情.但是有一个问题!如果我attr_option :foo在其中一个测试方法中调用,那么现在在Config中永远定义了该方法.因此,后续测试将失败,因为foo已经定义:

  it "should support a specified option" do
    c = Configurator::Config
    c.attr_option :foo
    # ...
  end

  it "should support …
Run Code Online (Sandbox Code Playgroud)

ruby testing rspec metaprogramming

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

在一行中压缩分配和错误检查有什么好处?

此问题的灵感来自此问题,其中包含以下代码段.

int s;
if((s = foo()) == ERROR)
    print_error();
Run Code Online (Sandbox Code Playgroud)

我发现这种风格难以阅读并且容易出错(正如原始问题所示 - 它是由于在作业周围缺少括号而引起的).我会写下面的内容,实际上字符更短.

int s = foo();
if(s == ERROR)
    print_error();
Run Code Online (Sandbox Code Playgroud)

这不是我第一次看到这个成语,我猜这里经常使用的原因(也许是历史的).这些原因是什么?

c c++ coding-style

19
推荐指数
3
解决办法
513
查看次数