相关疑难解决方法(0)

试图为中信托开发一个失败的原因?

我开始开发一个新的MVC应用程序,其中实体框架代码优先,Unity用于依赖注入.我使用EF5和Unity,因为我认为他们应该在Medium Trust中工作.但是,当我把<trust level="Medium" />标记扔进我的时候web.config,我开始获得反射权限异常.

似乎每当我超越使用像System.Data.SqlClientADO.net 这样的内置东西时,我总是会遇到Medium Trust中的问题.自动映射器:失败.NHibernate:失败.MySQL:失败.EF5代码优先:失败.国际奥委会:失败.

我只是在追逐梦想吗?是否有可能使用将在Medium Trust中运行的现代技术来实现构建良好且可测试的Web应用程序?

在虚拟机/虚拟服务器/云计算时代(甚至一些将您的应用程序池设置为完全信任的共享主机),是否有人发现为中型信任开发值得付出努力?

asp.net asp.net-mvc medium-trust

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

ASP.NET WebForms 网站中的 .NET 4.7.2 依赖注入 - 构造函数注入不起作用

我们目前正在处理一个较旧的项目(ASP.NET Web 窗体网站)并尝试查看是否可以为其设置依赖项注入。

需要强调的是:这不是一个 Web 应用程序项目......它是旧类型的网站。

它目前的目标是 .NET 4.7.2:

<httpRuntime targetFramework="4.7.2" />
Run Code Online (Sandbox Code Playgroud)

到目前为止,我们已经包含了 NuGet 包:

<package id="Microsoft.AspNet.WebFormsDependencyInjection.Unity" version="1.0.0" targetFramework="net472" />
Run Code Online (Sandbox Code Playgroud)

定义了一些虚拟接口和实现:

public interface IDependencyTest
{
    string GetName();
}

public class DependencyTest : IDependencyTest
{
    public string GetName()
    {
        return "Mwuhahaha!!!";
    }
}
Run Code Online (Sandbox Code Playgroud)

并在 global.asax 中的 Application_Start 事件处理程序中连接 DI 容器:

void Application_Start(object sender, EventArgs e)
{
    var container = this.AddUnity();

    container.RegisterType<IDependencyTest, DependencyTest>();
}
Run Code Online (Sandbox Code Playgroud)

导入了所需的命名空间:

<%@ Import Namespace="Microsoft.AspNet.WebFormsDependencyInjection.Unity" %>
<%@ Import Namespace="Unity" %>
Run Code Online (Sandbox Code Playgroud)

创建了一个测试页面Teste.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Teste.aspx.cs" Inherits="Teste" %>

<!DOCTYPE …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net dependency-injection webforms

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

与Moq的单元测试接口

我是Moq和单元测试的新手.我一直在进行单元测试,这是以下代码:

private Mock<IServiceAdapter> repository;

    [TestInitialize]
    public void Initialize()
    {
        repository= new Mock<IServiceAdapter>();
    }

[TestMethod()]
    public void SaveTest()
    {
        //Setup 
        string Name = "Name1"; 
        string Type = "1";
        string parentID = null;

        repository.Setup(x => x.Save(Name , Type, parentID)).Returns("Success").Verifiable();

        //Do
        var result = repository.Object.Save(Name , Type, parentID);
        //Assert
        repository.Verify();
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是测试将始终返回我放在Returns参数中的字符串,换句话说,它将始终返回"成功"或我在其位置写入的任何内容.我想这不对,因为那不是服务的真实行为.任何人都知道如何反映我正在尝试测试的"保存"服务的真实行为?因此,假设返回字符串与服务方法不同,则测试应该失败.

编辑

ServiceAdapter接口只是Web服务的包装器,我称之为REST服务.这是一个Web表单项目.

我正在做这样的事情

如何模拟Web服务

我应该创建类似具有依赖注入的FakeController以使其工作吗?

c# asp.net unit-testing interface moq

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

在.NET 4.7.2中的WebForms中连接简单注入器

随着.NET 4.7.2的更改,现在可以在Web窗体中进行构造函数注入.我已经使用简单注入器使用Web窗体,但是想要一些输入,如果有任何"陷阱"我可能会丢失.

首先,我有自己的网页是从拍摄的注册这里.

public static void RegisterWebPages(this Container container)
{
    var pageTypes = 
        from assembly in BuildManager.GetReferencedAssemblies().Cast<Assembly>()
        where !assembly.IsDynamic
        where !assembly.GlobalAssemblyCache
        from type in assembly.GetExportedTypes()
        where type.IsSubclassOf(typeof(Page))
        where !type.IsAbstract && !type.IsGenericType
        select type;

    foreach (Type type in pageTypes)
    {
        var reg = Lifestyle.Transient.CreateRegistration(type, container);
        reg.SuppressDiagnosticWarning(
            DiagnosticType.DisposableTransientComponent,
            "ASP.NET creates and disposes page classes for us.");
        container.AddRegistration(type, reg);
    }
}
Run Code Online (Sandbox Code Playgroud)

当从上面的链接使用属性注入方法时,这很有效.我把它包括在这里是为了完整.

当我第一次连线时,有OutputCacheModule一个内部构造函数的问题.使用此处的代码,我能够解决该问题以及可能源自内部构造函数的任何其他问题.以下是该实现的完整性代码.

public class InternalConstructorResolutionBehavior : IConstructorResolutionBehavior
{
    private IConstructorResolutionBehavior original;

    public InternalConstructorResolutionBehavior(Container container)
    {
        this.original …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection webforms simple-injector

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

ASP.NET页面属性好主意或坏主意

我倾向于回避向ASP.NET页面添加属性.这对我来说似乎不是一个好主意.但是,最近我看到了一些示例应用中使用的做法.我是否厌恶向页面添加自定义属性是没有根据的还是"这取决于"情况?

c# asp.net properties

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