小编Cra*_*ker的帖子

没有\ Bin或GAC的ASP.NET中的引用DLL

我在源代码控制下有一个ASP.NET项目(Subversion).由于各种原因,我不想将\ Bin目录或其内容添加到源代码控制,所以我有svn:忽略它.在Visual Studio构建期间将DLL加载到此处,我可以从一个干净的目录开始和/或删除此目录的所有内容,但仍然可以成功构建.

我有两种方法可以引用代码以包含在项目中:

  1. 在Web.config元素中//configuration/configSections/system.web/compilation/assemblies.我可以<add>通过这种方式使用GAC中的任何DLL.我为所有的系统dll做这个.
  2. 在VS解决方案中,Project/ProjectSection/ProjectReferences中有一个设置,允许我指定对解决方案中其他项目的包含引用.

(请注意,这与非Web项目不同,其中对外部依赖项的所有引用都存储在项目文件中.对于VS Web项目,没有项目文件,因此必须将它们存储在其他位置.)

现在我有一个第三方编译的DLL,我想包含在项目中.不幸的是,我发现的参考选项似乎都不适合我:

  1. 除非GAC中存在DLL,否则通过web.config/system.web/compilation/assemblies进行引用不起作用; 你不能使用文件路径.我真的想避免GAC依赖,因为这意味着需要额外的一步来使项目在每台目标机器上运行.
  2. 我没有找到在解决方案中包含文件引用的方法,就像我可以使用项目引用一样.
  3. 每当我使用VS的"添加引用"对话框添加文件引用时,它只会将DLL复制到\ Bin目录.这对我来说不起作用,因为我的\ Bin目录不是跨系统持久的.

有没有其他方法可以引用DLL文件并让它坚持下去?

asp.net dll web-config reference

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

向元素添加命名空间

我有一个带有非命名空间元素的XML文档,我想使用XSLT向它们添加命名空间.大多数元素都在命名空间A中; 一些将在命名空间B中.我该怎么做?

xml xslt namespaces

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

在ASP.NET MVC中的控制器之外创建ViewResults

我的一些控制器操作具有一组标准的故障处理行为.一般来说,我想:

  • 根据路径数据(ID等)加载对象
    • 如果Route Data未指向有效对象(例如:通过URL hacking),则通知用户该问题并返回HTTP 404 Not Found
  • 验证当前用户是否具有该对象的适当权限
    • 如果用户没有权限,请通知用户该问题并返回HTTP 403 Forbidden
  • 如果上述内容成功,则使用特定于操作的对象执行某些操作(即:在视图中呈现它).

这些步骤是如此标准化,我希望有可重用的代码来实现该行为.

我目前的攻击计划是使用辅助方法来执行以下操作:

public static ActionResult HandleMyObject(this Controller controller, 
    Func<MyObject,ActionResult> onSuccess) {
  var myObject = MyObject.LoadFrom(controller.RouteData).
  if ( myObject == null ) return NotFound(controller);
  if ( myObject.IsNotAllowed(controller.User)) return NotAllowed(controller);
  return onSuccess(myObject);
}

# NotAllowed() is pretty much the same as this
public static NotFound(Controller controller){
    controller.HttpContext.Response.StatusCode = 404
    # NotFound.aspx is a shared view.
    ViewResult result = controller.View("NotFound");
    return result;
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是Controller.View()是一个受保护的方法,因此无法从帮助程序访问.我已经看过明确地创建一个新的ViewResult实例,但是有足够的属性来设置我在不知道陷阱的情况下这么做是很谨慎.

从特定控制器外部创建ViewResult的最佳方法是什么?

asp.net-mvc controller

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

用户定义函数中的错误处理

我想在SQL Server 2005中编写一个非CLR用户定义的函数.该函数接受一个输入字符串并返回一个输出字符串.如果输入字符串无效,那么我想向调用者指出错误.

我的第一个想法是使用RAISERROR来引发异常.但是,SQL Server不允许在UDF中使用它(尽管可以在基于CLR的UDF中引发异常,如图所示).

我的最后一种方法是在输入值出错时从函数返回NULL(或其他一些错误指示符值).但是,我不喜欢这个选项,因为它:

  1. 不向呼叫者提供任何有用的信息
  2. 不允许我在响应有效输入时返回NULL(因为它被用作错误代码).

是否有任何调用方友好的方法来暂停SQL Server中的错误函数?

sql-server error-handling sql-server-2005 function user-defined-functions

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

LINQ-to-SQL IN/Contains()用于Nullable <T>

我想在LINQ中生成这个SQL语句:

select * from Foo where Value in ( 1, 2, 3 )
Run Code Online (Sandbox Code Playgroud)

棘手的一点似乎是Value是一个允许空值的列.

等效的LINQ代码似乎是:

IEnumerable<Foo> foos = MyDataContext.Foos;
IEnumerable<int> values = GetMyValues();
var myFoos = from foo in foos
             where values.Contains(foo.Value)
             select foo;
Run Code Online (Sandbox Code Playgroud)

当然,这不会编译,因为它foo.Value是一个int?并且values被输入int.

我试过这个:

IEnumerable<Foo> foos = MyDataContext.Foos;
IEnumerable<int> values = GetMyValues();
IEnumerable<int?> nullables = values.Select( value => new Nullable<int>(value));
var myFoos = from foo in foos
             where nullables.Contains(foo.Value)
             select foo;
Run Code Online (Sandbox Code Playgroud)

...还有这个:

IEnumerable<Foo> foos = MyDataContext.Foos;
IEnumerable<int> values = GetMyValues(); …
Run Code Online (Sandbox Code Playgroud)

sql linq nullable linq-to-sql

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

使用整数ID类型字段的多态关联

我有一个表Foo有一个多态的belongs_to关联调用bar.该foos表具有标准bar_id列.但是,bar_type我有一个整数bar_type_id列,而不是基于字符串的列.此列引用id表中的列bar_types.bar_types.name保存表示特定bar实例的类的类的名称.

Rails(理想情况下> = 2.3.10)是否允许这种类型的多态关联?

ruby-on-rails polymorphic-associations ruby-on-rails-2

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

Rails中的多种格式验证

我有一个foo必须满足四个条件的字段串:

  • 它必须是非空白的
  • 它必须是所有记录的唯一
  • 它必须只包含字母,数字和超量
  • 它不能以字符串"bar"开头

前两个由处理:presence:uniqueness验证处理.后两者很容易:format通过正则表达式进行验证来处理 .

是否可以包含多个:format具有不同:message值的验证规则?

我想避免将这两个条件合并为一个正则表达式.除了多条消息之外,我认为如果它们不同,它们更容易阅读和写入.

理想情况下,我希望所有这些都能在一次validates通话中完成,但这并不是严格要求的.

validation ruby-on-rails ruby-on-rails-3

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

如何制作看起来不像按钮的Glyphicon按钮

我正在为我的HTML/Javascript应用程序添加一些控件.当用户点击它们时,它们应该执行一个动作.虽然我可以将click事件绑定到任何元素,但从语义上讲,<button>元素似乎是正确的选择.它不仅表示一个应该被点击的元素,而且还提供了所需的默认行为(例如:cursor: pointer在CSS中); 我想避免重新设计.

但是,我希望我的控件看起来不像典型的按钮.具体来说,我想使用glyphicons(通过Bootstrap)来设置外观.

将glyphicon添加到按钮很简单:

<button type="button"><span class="glyphicon glyphicon-plus-sign"></span></button>
Run Code Online (Sandbox Code Playgroud)

但这只是将glyphicon包装在标准按钮外观中:

嵌入按钮的图标

(这是Chrome for OS X的屏幕截图)

我可以将glyphicon类直接附加到按钮:

<button type="button" class="glyphicon glyphicon-plus-sign"></button>
Run Code Online (Sandbox Code Playgroud)

......但这看起来更糟糕了:

带图标类的按钮

我确信我可以尝试剥离CSS中的各种边框,背景等,但这似乎不是非常跨平台或可靠的.

取消按钮按钮的最佳方法是什么?

html css twitter-bootstrap glyphicons

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

在SQL中选择包含所有子项的父记录

假设我有两个表,"父"和"孩子".Parent-to-Child是一个很多:很多关系,通过标准的交叉引用表实现.

我想查找使用SQL的给定Child组的所有成员引用的Parent的所有记录(特别是MS SQL Server的T-SQL; 2005语法是可接受的).

例如,假设我有:

  • 项目清单
  • 亲爱丽丝
  • 父鲍勃
  • 查理小姐引用了爱丽丝,鲍勃
  • 儿子大卫引用爱丽丝
  • 儿童夏娃参考鲍勃

我的目标是:

  • 如果我有Child Charlie,我希望结果集包括Alice和Bob
  • 如果我有Child Charlie和David,我希望结果集包括Alice和NOT Bob.
  • 如果我有孩子查理,大卫和夏娃,我希望结果集包含任何人.

sql t-sql sql-server sql-server-2005

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

任意或自定义URL的Rails功能测试

我的Rails应用程序中有一个名为"Photo"的RESTful资源.我正在使用Paperclip来提供我的照片的不同"样式"(缩略图等),我正在使用自定义路径来RESTful访问这些样式:

map.connect "photos/:id/style/*style", :controller => "photos", :action => "show"
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我想写一个测试,以确保它保持这种方式.

我已经有一个功能测试来调用Photo控制器的show动作(实际上是由scaffold生成):

test "should show photo" do
  get :show, :id => photos(:one).to_param
  assert_response :success
end
Run Code Online (Sandbox Code Playgroud)

它测试URL"/ photo/1"处的动作执行情况.现在我想测试URL"/ photo/1/style/foo"的执行情况.不幸的是,我似乎无法使用ActionController :: TestCase来访问该URL; get方法总是想要一个action/id,并且不接受URL后缀.

如何测试自定义网址?

更新

在检查@ fernyb的答案时,我在同一个rdoc中找到了这个片段

在测试中,您只需传递URL或命名路由即可获取或发布.def send_to_jail get'/ jail'assert_response:success assert_template"jail/front"end

但是,当我实际尝试时,我收到一条错误消息:

test "should get photo" do
  get "/photos/1/style/original"
  assert_equal( "image/jpeg", @response.content_type )
end  

ActionController::RoutingError: No route matches {:action=>"/photos/1/style/original", :controller=>"photos"}
Run Code Online (Sandbox Code Playgroud)

我想知道我做错了什么.

url controller ruby-on-rails functional-testing

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