小编jri*_*zzo的帖子

在C#中将类作为ref参数传递并不总是按预期工作.谁能解释一下?

我一直认为默认情况下,带有类类型的方法参数作为引用参数传递.显然情况并非如此.在C#中考虑这些单元测试(使用MSTest).

[TestClass]
public class Sandbox
{
    private class TestRefClass
    {
        public int TestInt { get; set; }
    }

    private void TestDefaultMethod(TestRefClass testClass)
    {
        testClass.TestInt = 1;
    }

    private void TestAssignmentMethod(TestRefClass testClass)
    {
        testClass = new TestRefClass() { TestInt = 1 };
    }

    private void TestAssignmentRefMethod(ref TestRefClass testClass)
    {
        testClass = new TestRefClass() { TestInt = 1 };
    }

    [TestMethod]
    public void DefaultTest()
    {
        var testObj = new TestRefClass() { TestInt = 0 };
        TestDefaultMethod(testObj);
        Assert.IsTrue(testObj.TestInt == 1);
    }

    [TestMethod]
    public …
Run Code Online (Sandbox Code Playgroud)

c# reference

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

哪些LINQ语句强制Entity Framework从DB返回?

我知道几个LINQ语句将导致EF评估并将结果从DB返回到内存. .ToList()是一个.有没有人有完整的声明列表?

不确定......

.SingleOrDefault()
.Union()
Run Code Online (Sandbox Code Playgroud)

编辑:希望我能接受所有这些答案.大家好消息!

c# linq entity-framework

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

模型上的.NET MVC依赖注入?

问题:有没有办法使用Ninject将依赖项注入我的MVC模型?

首先,我是MVC和DI(以及stackoverflow,btw)的新手,所以我想确保我正在走这条问题的正确道路.几天来我一直在谷歌搜索答案,但我找不到一个干净的解释......我正在使用C#,. NET4,MVC3,Ninject和VS2010.

这是一个场景:我有一个新的用户表单,用户可以在其中设置登录,角色和设置其他配置文件数据.当这个提交时,我需要将登录信息保存到MembershipProvider,RoleProvider的角色等等......它有点毛茸茸,因为我根据我的项目要求使用双提供程序(Active Directory /本地数据库),因此,在确定要保存到哪个提供程序时,如果用户已经存在,是否允许自我识别任何角色,还有一些逻辑,等等.

我觉得这个逻辑应该放在我的模型上的.Save()方法中.但是,我需要将我的提供者的实例注入到我的模型中,而Ninject似乎没有注入模型(至少不使用NuGet包附带的默认设置).因此,我的初步问题.

我可以想到一些替代方案......

  1. 也许模型对于这个逻辑来说是一个不好的地方,我应该将逻辑抽象为服务?但是为这个保存功能提供服务对我来说似乎有些过分.
  2. 我可以在我的控制器中吃掉臃肿......但我被告知"胖"控制器是一种不好的做法.
  3. 我想我可以将我的提供程序注入我的控制器,然后将这些依赖项传递给我的模型,但这看起来有点不稳定.

那么...... 有没有办法让Ninject模型或者我需要重新考虑因为我是新手吗?

c# ninject asp.net-mvc-3

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

如何让Html.CheckBoxFor()在字符串字段上工作?

我正在使用带有Razor和C#的ASP.NET MVC3.我正在制作各种表单构建器,所以我有一个具有以下对象集合的模型:

public class MyFormField
{
    public string Name { get; set; }
    public string Value { get; set; }
    public MyFormType Type { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

MyFormType只是一个枚举,告诉我表单字段是复选框,文本框,文件上传,还是其他什么.我的编辑器模板看起来像这样(请参阅注释):

〜/查看/ EditorTemplates/MyFormField.cshtml

@model MyFormField
@{
    switch (Model.Type)
    {
        case MyFormType.Textbox:
            @Html.TextBoxFor(m => m.Value)
        case MyFormType.Checkbox:
            @Html.CheckBoxFor(m => m.Value)  // This does not work!
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试m.Value在CheckBoxFor()的lambda表达式中转换/转换为bool,但是这引发了错误.我只是手动构造一个复选框输入,但CheckBoxFor()似乎做了两件我似乎无法复制的事情:

  1. 创建一个隐藏的输入,以某种方式由复选框填充.这似乎是模型绑定器的选择.
  2. 从对象生成名称,以便模型绑定器将值获取到正确的属性中.

有没有人知道在字符串上使用CheckBoxFor()的方法,或者手动复制其功能的方法,以便我可以使这个工作?

c# asp.net-mvc mvc-editor-templates razor asp.net-mvc-3

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

ASP.NET MVC验证组?

我有一个表单,我想要根据按下的提交按钮需要不同的字段.示例:如果按下"提交按钮1",则需要字段A,但如果按"提交"按钮2,则只需要字段B.如果我仍在使用Web表单,则会为每个按钮/验证器组合分配不同的"验证组". 有没有办法在MVC中执行此操作,最好是在模型上使用数据注释? 我宁愿用单一解决方案实现客户端和服务器验证,但我会采取我能得到的...

提前致谢!

.net validation asp.net-mvc asp.net-mvc-3

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

如何在自定义Html Helper中使用Html.EditorFor()(和其他人)?

基本上,我想要一个Html助手(类似的东西@Html.MyEditor(m => m.Property))来产生这个:

<div class="editor-label">
    @html.LabelFor(m => m.Property)
</div>
<div class="editor-field">
    @html.EditorFor(m => m.Property)
    @html.ValidationMessageFor(m => m.Property)
</div>
Run Code Online (Sandbox Code Playgroud)

唯一的问题是我似乎无法访问Html.EditorFor()我自己的帮助器中的任何其他扩展方法.示例尝试:

@helper Edit(this System.Web.Mvc.HtmlHelper<Spartacus.ViewModels.NewTaskItemModel> html)
{
    <div class="editor-label">
        @html.LabelFor(m => m.Property)
    </div>
    <div class="editor-field">
        @html.EditorFor(m => m.Property)
        @html.ValidationMessageFor(m => m.Property)
    </div>
}
Run Code Online (Sandbox Code Playgroud)

我也尝试了扩展方法语法:

public static string DatePickerFor<TModel, TProperty>(this HtmlHelper<TModel> html, Expression<Func<TModel, TProperty>> expression)
{
    var sb = new StringBuilder();
    sb.AppendLine("<div class=\"editor-label\">");
    sb.AppendLine(html.LabelFor(expression));
    sb.AppendLine("</div>");
    sb.AppendLine("<div class=\"editor-field\">");
    sb.AppendLine(html.EditorFor(expression));
    sb.AppendLine(html.ValidationMessageFor(expression));
    sb.AppendLine("</div>");
    return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)

在上述两次尝试中,LabelFor,EditorFor和ValidationMessageFor抛出编译错误("无法找到").

有人知道这样做的方法吗?提前致谢!

asp.net-mvc-3

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

MVC和NOSQL:将View Model直接保存到MongoDB?

据我所知,MVC中关注点分离的"正确"结构是为您的视图构建视图模型,并为您选择的存储库中的数据模型提供独立的数据模型.我开始尝试使用MongoDB,并且我开始认为在使用无架构的NO-SQL样式数据库时这可能不适用.我想将此场景呈现给stackoverflow社区,看看每个人的想法是什么.我是MVC的新手,所以这对我来说很有意义,但也许我忽略了一些......

以下是我讨论的示例:当用户想要编辑他们的个人资料时,他们会转到UserEdit视图,该视图使用下面的UserEdit模型.

public class UserEditModel
{
    public string Username
    {
        get { return Info.Username; }
        set { Info.Username = value; }
    }

    [Required]
    [MembershipPassword]
    [DataType(DataType.Password)]
    public string Password { get; set; }

    [DataType(DataType.Password)]
    [DisplayName("Confirm Password")]
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
    public string ConfirmPassword { get; set; }

    [Required]
    [Email]
    public string Email { get; set; }

    public UserInfo Info { get; set; }
    public Dictionary<string, bool> Roles { get; set; }
}

public class …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc separation-of-concerns mongodb

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

如何通过MVC Azure AD身份验证从AD获取角色?

我设置和MVC 4应用程序并添加了对我们的Azure AD服务器的身份验证,如下所述:http://msdn.microsoft.com/en-us/library/windowsazure/dn151790.aspx

身份验证按预期工作.但是,我没有默认任何角色.应该创建几个AD组,我想使用它们通过MVC中的[Authorize]属性来限制应用程序.

我真的找不到一个好的地方,甚至开始搞清楚这一点.任何人都可以给我一个大纲或指向我一个很好的教程吗?

我应该提一下,我不是Azure帐户的管理员,因此如果需要进行任何设置,我需要告诉管理员该怎么做.

asp.net-mvc active-directory azure

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

如何使用 PowerShell 多线程并通过 Pester Mocks 进行单元测试

我正在尝试在 Powershell 中执行简单的并行操作。我正在使用 PoshRSJobs 进行多线程处理,尽管我也尝试过 Invoke-Parallel 来解决同样的问题。我需要在作业的脚本主体中调用几个我自己的函数,但这不允许我模拟这些函数以进行单元测试(它们最终成为原始的非模拟函数)。此时,我只是想断言它们被调用的次数是正确的。

这是原始类(导入模块的功能无关 - 实际实现当前返回测试字符串)...

Import-Module $PSScriptRoot\Convert-DataTable
Import-Module $PSScriptRoot\Get-History
Import-Module $PSScriptRoot\Get-Assets
Import-Module $PSScriptRoot\Write-DataTable

function MyStuff (
    param(
        [string]$serverInstance = "localhost\SQLEXPRESS", 
        [string]$database = "PTLPowerShell",
        [string]$tableName = "Test"
    )
    $assets = Get-Assets
    $full_dt = New-Object System.Data.DataTable
    $assets | Start-RSJob -ModulesToImport $PSScriptRoot\Convert-FLToDataTable, $PSScriptRoot\Get-FLHistory {
        $history = Get-History $asset
        $history_dt = Convert-DataTable $history
        return $history_dt.Rows
    } | Wait-RSJob | Receive-RSJob | ForEach { 
        $full_dt.Rows.Add($_) 
    }
    Write-DataTable $serverInstance $database $tableName $full_dt
}
Run Code Online (Sandbox Code Playgroud)

这是 Pester 测试...

$here = Split-Path -Parent $MyInvocation.MyCommand.Path …
Run Code Online (Sandbox Code Playgroud)

powershell multithreading mocking pester

6
推荐指数
1
解决办法
666
查看次数

在SQL Server上存储NoSQL数据?

因此,忽略我们应该使用NoSQL数据库这一事实 - 客户端基础架构要求正在逐渐增加.

我们的数据显然属于非关系模型,但我们必须使用SQL Server 2014来实现持久性.有没有办法将库用于RavenDB或MongoDB与SQL Server之间的持久性?例如,将JSON或BSON存储在SQL Server表中,但使用Mongo或Raven查询和序列化它?

我们最初只是将JSON数据存储在一个列中,但我认为必须有一个更优雅的解决方案.我看到RavenDB支持SQL Server复制,但看起来它不能用于其主要持久性组件.

我们正在运行一个C#ASP.NET MVC Web应用程序.前端是一个KnockoutJS SPA,所以它很乐意绑定到JSON数据.

c# sql-server mongodb nosql ravendb

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