我将ASP.NET MVC 3用于大量使用的应用程序或用户和角色.
要创建用户并分配角色,我使用ASP.NET成员资格的标准流程.
在整个应用程序中,我使用NHibernate进行底层数据访问,除了这些地方是默认的MembershipProvider和RoleProvider实现(在AccountController内部委托调用这些实现).
我想使用NHibernate,以便能够读取/编辑/修改由ASP.NET成员资格管理的表上的值.
我找到了两个解决方案
为MembershipProvider和RoleProvider编写一个自定义的NHibernate实现(甚至使用这个实现).那是最艰难的道路.
仅映射表(如描述在这里),然后直接使用NHibernate的(虽然从任何的AccountController默认动作将被默认提供商仍然处理).
有什么建议/建议吗?
asp.net nhibernate asp.net-mvc asp.net-membership fluent-nhibernate
是否可以编译我正在从WebStorm编辑的.coffee文件?
(不离开IDE,类似于Mindscape的Visual Studio Web Workbench.)
经过相当多的搜索,我找不到与Enumerable.DefaultIfEmpty相当的F#.
F#中是否存在类似的东西(也许是以不同的,惯用的方式)?
我试图DateTime使用DateTime构造函数(Int64)生成随机实例,如下所示:
string date = new DateTime(ticks).ToString("dd/mm/yyyy")
Run Code Online (Sandbox Code Playgroud)
这ticks是633999744000000000(2010/01/25 in ticks)和635578272000000000(2015/01/26 ticks)之间的随机数.
输出:
date ticks
---- -----
13/37/2013 634963486624182148
27/58/2010 634158395314391599
20/49/2011 634442033950650720
21/15/2013 634943637106398216
10/30/2014 635380290170226984
10/07/2012 634881676490509687
27/43/2012 634711201999181055
15/13/2012 634726699845971038
01/59/2010 634241843691014848
Run Code Online (Sandbox Code Playgroud)
但是,上述结果并不代表有效的实例.
如何使用?生成DateTime表示有效日期的随机实例ticks?
我正在使用AutoFixture为我的Abstract类编写单元测试,这是我正在尝试做的代表:
public abstract class Base
{
public virtual void DoSomethingCool()
{
OnDoingSomethingCool();
}
protected abstract void OnDoingSomethingCool();
}
Run Code Online (Sandbox Code Playgroud)
我的单元测试看起来像这样:
[TestMethod]
public void TestMethod1()
{
var fixture = new Fixture().Customize(new AutoMoqCustomization());
var sut = fixture.Create<Base>();
// How to assert that the OnDoingSomethingCool method was called
sut.Invoking(x => x.DoSomethingCool())
.ShouldNotThrow();
}
Run Code Online (Sandbox Code Playgroud)
那么如何断言受保护的抽象方法实际上是在DoSomethingCool方法中调用的?
如果它是来自注入依赖项的对象,我将能够设置模拟使用Moq并断言该方法被调用,但由于该方法是我的主题测试中的抽象方法,我如何断言该方法被调用?
在Java中我们可以这样做:
bool[][] something = new bool[5][10];
// Then, we can do this, since indexes do not refer to null instances:
something [3][7] = true;
Run Code Online (Sandbox Code Playgroud)
但是,在C#中似乎没有编译.在C#中有相同的方法吗?
是否可以通过Reflection编写以下代码?
var fake = A.Fake<Foo>(
o => o.WithArgumentsForConstructor(new[] { "Hello" }));
Run Code Online (Sandbox Code Playgroud)
其中Ø为:
Action<IFakeOptionsBuilder<T>>
Run Code Online (Sandbox Code Playgroud)
其中WithArgumentsForConstructor是:
IFakeOptionsBuilder<T> WithArgumentsForConstructor(IEnumerable<object> argumentsForConstructor);
Run Code Online (Sandbox Code Playgroud)
Foo类是:
class Foo
{
public Foo(string s)
{
}
}
Run Code Online (Sandbox Code Playgroud)
我做的是:
object fake = typeof(A)
.GetMethod("Fake", new Type[] { })
.MakeGenericMethod(new[] { this.targetType })
.Invoke(null, /* Here I need to pass the lambda. */);
Run Code Online (Sandbox Code Playgroud) 我在F#中非常新(但非常兴奋).
返回的属性的等效F#代码是IEnumerable<object[]>什么?
public static IEnumerable<object[]> EnumerateFooBar
{
get
{
yield return new object[]
{
"foo",
"bar"
};
}
}
Run Code Online (Sandbox Code Playgroud) c# ×4
f# ×2
arrays ×1
asp.net ×1
asp.net-mvc ×1
autofixture ×1
coffeescript ×1
date ×1
datetime ×1
fakeiteasy ×1
java ×1
javascript ×1
lambda ×1
linq ×1
moq ×1
nhibernate ×1
porting ×1
random ×1
reflection ×1
unit-testing ×1
webstorm ×1