小编pyt*_*ips的帖子

REST资源URL中的查询字符串

我今天与同事讨论过使用REST URL中的查询字符串.拿这两个例子:

1. http://localhost/findbyproductcode/4xxheua
2. http://localhost/findbyproductcode?productcode=4xxheua
Run Code Online (Sandbox Code Playgroud)

我的立场是应该按照示例1设计URL.这更清晰,我认为在REST中是正确的.在我看来,如果产品代码不存在则从示例1返回404错误是完全正确的,而示例2返回404将是错误的,因为页面应该存在.他的立场是,它并不重要,他们都做同样的事情.

由于我们都没有找到具体的证据(诚然,我的搜索并不广泛),我想知道其他人对此的看法.

rest

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

使用lambda表达式获取属性名称和类型

我正在尝试编写一个函数,它将使用如下语法提取属性的名称和类型:

private class SomeClass
{
    Public string Col1;
}

PropertyMapper<Somewhere> propertyMapper = new PropertyMapper<Somewhere>();
propertyMapper.MapProperty(x => x.Col1)
Run Code Online (Sandbox Code Playgroud)

有没有办法将属性传递给函数而不对此语法进行任何重大更改?

我想获取属性名称和属性类型.

所以在下面的例子中我想要检索

Name = "Col1"Type = "System.String"

有人可以帮忙吗?

c# reflection lambda

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

匿名控制器的Rspec存根视图

我正在尝试在应用程序控制器上测试一个将用作前置过滤器的方法.为此,我在测试中设置了一个匿名控制器,并应用了之前的过滤器以确保其正常运行.

测试目前看起来像这样:

describe ApplicationController do
  controller do
    before_filter :authenticated

    def index      
    end
  end

  describe "user authenticated" do
    let(:session_id){"session_id"}
    let(:user){OpenStruct.new(:email => "pythonandchips@gmail.com", :name => "Colin Gemmell")}

    before do
      request.cookies[:session_id] = session_id
      UserSession.stub!(:find).with(session_id).and_return(user)
      get :index
    end

    it { should assign_to(:user){user} }

  end
end
Run Code Online (Sandbox Code Playgroud)

应用程序控制器是这样的:

class ApplicationController < ActionController::Base
  protect_from_forgery

  def authenticated
    @user = nil
  end
end
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我运行测试时,我收到以下错误

1) ApplicationController user authenticated 
   Failure/Error: get :index
   ActionView::MissingTemplate:
     Missing template stub_resources/index with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml, :haml], :formats=>[:html], :locale=>[:en, :en]} in view paths "#<RSpec::Rails::ViewRendering::PathSetDelegatorResolver:0x984f310>" …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails rspec-rails

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

多个接口注入城堡windsor

当您在容器中有多个实现时,如何让Castle Windsor在运行时选择正确的接口植入.

例如,假设我有一个名为IExamCalc的简单界面,它可以计算出某人在该考试中的表现.

不,我们有几个像这样的实现,例如,

public interface IExamCalc
{
    int CalculateMark(ExamAnswers examAnswers)
}

public class WritenExam : IExamCalc
{
    public int CalculateMark(ExamAnswers examAnswers)
    {
         return 4;
    }
}

public class OralExam : IExamCalc
{
    public int CalculateMark(ExamAnswers examAnswers)
    {
         return 8;
    }
}

public class ExamMarkService
{
    private IExamCalc _examCalc;
    public ExamMarkService(IExamCalc examCalc)
    {
        _examCalc = examCalc;
    }

    public int[] CalculateExamMarks(ExamAnswers[] examAnswers)
    {
        IList<int> marks = new List<int>;
        foreach(ExamAnswers examanswer in examaAnswers)
        {
            marks.Add(_examCalc.CalculateMark);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

假设通过Windor恢复了ExamMarkService如何确保在构造函数中注入正确的实现,这是多租户问题的一个例子吗?

希望一切都有所作为

科林G.

dependency-injection castle-windsor inversion-of-control

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

使用ASP.NET Web表单中的纯HTML控件来表单发布值

我有一个简单的表单,有一些简单的html输入,如使用ASP.NET Web Forms(不是MVC)的bellow

<table id="tbl_SchoolDetails">
    <tbody id="tbody_SchoolDetails">
        <tr>
            <td>
            School Name
        </td>
        <td>
            <input id="SchoolDetails_SchoolName" type="text" value="<%= ViewModel.School.Name %>" />
        </td>
    </tr>
    <tr>
        <td>
            Head Teacher
        </td>
        <td>
            <input id="SchoolDetails_HeadTeacher_Name" type="text" value="<%= ViewModel.School.HeadTeacher.Name %>" />
        </td>
    </tr>
    <tr>
        <td>
            Head Teacher Email
        </td>
        <td>
            <input id="SchoolDetails_HeadTeacher_Email" type="text" value="<%= ViewModel.School.HeadTeacher.Email %>" />
        </td>
    </tr>
    <tr>
        <td>
            Regent/Placement Contact
        </td>
        <td>
            <input id="SchoolDetails_Regent_Name" type="text" value="<%= ViewModel.School.Regent.Name %>" />
        </td>
    </tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

当我回发到服务器时,文本框的值不包含在Request.Form元素中.有什么理由让我失踪.我不愿意使用asp.net控件,因为该页面后来需要相当数量的javascript来更改ui和其他东西.

我知道我可以轻松地使用MVC做到这一点,但不幸的是,此时的更改不是一个选项.

干杯科林G.

html asp.net webforms

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

从对象验证消息中删除字段名称

我在一个表单中使用它对一个对象进行了简单的活动记录验证:

  form.error_messages({:message => '', :header_message => ''})
Run Code Online (Sandbox Code Playgroud)

这反过来输出类似"FieldName我的自定义消息"的内容

我需要做的是从错误消息中删除字段名称,但保留我的自定义消息.

任何人都可以指出我正确的方向.

ruby validation activerecord ruby-on-rails

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

在红宝石中使用成分

我是新Ruby,但一年多来都是.net开发者.我希望在我的几个模型中实现组合,以确保它们尽可能松散耦合,但不知道从哪里开始,或者如果这是真的需要,我仍然在考虑像.net dev.

任何人都可以给我一些指示从哪里开始.

干杯科林G.

ruby composite composition

4
推荐指数
1
解决办法
1762
查看次数

使用NHibernate生成模式的策略

我正在构建一个使用NHibernate生成数据库模式的新应用程序,但我可以看到将来可能出现的问题.

显然,当您更新架构时,您使用数据库中的所有数据都会被清除,但人们使用什么样的数据来将任何数据恢复到新数据库.我知道模式的大量更改会使这很难,但是想知道其他人是如何处理这个问题的.

干杯科林G.

PS我不会在实时数据库中使用它来恢复测试数据以进行集成测试和持续集成

sql nhibernate

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

IsOrderedBy扩展方法

在我的一些测试中,我需要检查列表的顺序,并执行类似这样的操作

DateTime lastDate = new DateTime(2009, 10, 1);
foreach (DueAssigmentViewModel assignment in _dueAssigments)
{
    if (assignment.DueDate < lastDate)
    {
        Assert.Fail("Not Correctly Ordered");
    }
    lastDate = assignment.DueDate;
}
Run Code Online (Sandbox Code Playgroud)

我想做什么我把它变成IEnumerable上的扩展方法,使其可重用.

我的初衷是这个

public static bool IsOrderedBy<T, TestType>(this IEnumerable<T> value, TestType initalValue)
{
    TestType lastValue = initalValue;
    foreach (T enumerable in value)
    {
        if(enumerable < lastValue)
        {
            return false;
        }
        lastValue = value;
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

这里出现的问题是你无法与普通价值观相媲美.任何人都可以建议这样做.

干杯科林

c# generics

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

Html被添加到下载文件作为响应

我正在我的ASP.NET Web应用程序中动态创建一个csv文件,并使用以下代码将其发送回用户

ExportPlacementListPostModel postModel = CreatePostModelFromRequest();
MemoryStream stream = PlacementDatabaseController.ExportPlacementList(postModel);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("content-disposition", "attachment; filename=studentplacement.csv");
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(stream.GetBuffer());
Run Code Online (Sandbox Code Playgroud)

每次下载文件时,网页html都会附加到文档中.

谁能看到我在这里做错了什么.

科林G.

c# asp.net asp.net-3.5

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

使用 nhibernate 获取关系计数大于 x 的实体

说我有一个这样的实体

public class Something
{
    public int Id{get;set;}
    public string Name{get;set;}
    public IList<SomeOther> Assosiation{get;set}
}
Run Code Online (Sandbox Code Playgroud)

我如何使用 nhibernate 查询以使用 Criteria API 获取具有超过 10 个关联的所有东西实体?

干杯科林

nhibernate

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