小编Flo*_*uni的帖子

将StructureMap与单元测试结合使用

我在DI IOC的Web项目中使用StructureMap.它工作得很完美,但我不知道如何用StructureMap编写单元测试.

我应该在AssemblyInitialize中开始配置StructureMap,就像在global.asax中一样,除了datacontext不使用实时LinqToSqlDataContext但是有些内存数据如下:

 [AssemblyInitialize]
 public static void Start()
 {
        ObjectFactory.Configure(x =>
                {
                    x.For<IDataContext>().HttpContextScoped().Use<MemoryDataContext>()
                        .Ctor<string>("connectionString")
                        .Is(ConfigurationManager.ConnectionStrings["DEVConnection"].ConnectionString);
                    x.For<IDepartamentRepository>().Use<DepartamentDB>();
                    x.For<IDevelopmentProcess>().Use<DevelopmentProcesses>().OnCreation(c => c.User = Current.CurrentUser);
                    x.For<IActivityProcess>().Use<ActivitiesProcess>().OnCreation(c=> c.User = Current.CurrentUser);
                    x.For<IDevDeveloperRepository>().Use<DevDeveloperDB>();
                    x.For<IDevelopmentRepository>().Use<DevelopmentDB>();
                    x.For<IActivityRepository>().Use<ActivityDB>();
                    x.For<IActivityTypeRepository>().Use<ActivityTypeDB>();
                    x.For<IDevUserRepository>().Use<DevUsersDB>();
                    x.For<IAttachmentRepository>().Use<AttachmentDB>();
                }
            );
 }
Run Code Online (Sandbox Code Playgroud)

然后使用ObjectFactory.GetInstance()测试或我该怎么做?

c# structuremap asp.net unit-testing

9
推荐指数
2
解决办法
8548
查看次数

backbone.js View确定模型的哪个属性发生了变化

如何知道在渲染函数中更改视图模型的哪个属性?(在渲染函数中,"e"是模型,但我只需要更改的属性.)我需要知道这个以了解要使用的模板.或者还有另一种方法吗?

window.Person = Backbone.Model.extend({});

window.Njerzit = Backbone.Collection.extend({
    model: Person,
    url: '/Home/Njerzit'
});

window.PersonView = Backbone.View.extend({
    tagName: 'span',

    initialize: function () {
        _.bindAll(this, 'render');
        this.model.bind('change', this.render);
    },

    render: function (e) {
        //if model name is changed, I need to render another template
        this.template = _.template($('#PersonTemplate').html());
        var renderContent = this.template(this.model.toJSON());
        $(this.el).html(renderContent);
        return this;
    }
});
Run Code Online (Sandbox Code Playgroud)

javascript backbone.js backbone-model

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

asp net javascript缓存清除

我有一个网站,我前段时间他们现在要求一些新功能,我在一些javascript文件中做了一些更改,但是当我发布使用IE的客户端有缓存问题所以在他们的浏览器中他们有旧版本的JavaScript .如何清除客户端缓存,以便当他们访问网站时,他们使用我修改的最新javascript文件.

javascript c# asp.net

5
推荐指数
1
解决办法
3112
查看次数

从编码字节中获取字符串数据

我有一个字节数组来自条形码阅读器(通过COM端口连接)读取ID卡.当我转换它们时,我可以读取一些数据,例如:

姓名,姓氏,城市

等,但如果某些数据有某些字符,如'Ë'或'Ç',或者某些字符在我们的语言中使用[编辑:OP在普里什蒂纳,科索沃],我会得到'?'.如何通过解码获得这些字符?

c#

5
推荐指数
1
解决办法
643
查看次数

StructureMap有条件的使用

我整天都在摸索着我的头脑,我找不到任何解决方案,所以我得到了帮助.听到我的问题:我有两个实现一个接口的类

public interface ICacheObject
{
    string Get();
}

public class WebCacheObject : ICacheObject
{
    public string Get()
    {
        return "Web";
    }
}

public class SysteCacheObject : ICacheObject
{
    public string Get()
    {
        return "System";
    }
}
Run Code Online (Sandbox Code Playgroud)

所以在其他一些clase For Class in Class Test中,我需要注入WebCacheObject,并且在Test2中我必须注入SystemCacheObject.我在Initialize中做了这个:

            ObjectFactory.Initialize(c =>{ c.For<IMessage>().Use<Message>();
                                       c.For<ICacheObject>().ConditionallyUse(t =>{t.If(g => g.RequestedName == "HTTP")
                                                                                            .ThenIt.Is.ConstructedBy(
                                                                                                () =>
                                                                                                new WebCacheObject());

                                                                                        t.If(g =>g.RequestedName =="OtherCache")
                                                                                            .ThenIt.Is.ConstructedBy(
                                                                                                () =>
                                                                                                new SysteCacheObject
                                                                                                    ());
                                                                                    });
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何调用Test-s clase-s所以如果我这样调用条件是真的(或者如何改变条件,那么这将起作用)

ObjectFactory.GetInstance <'ITEST>()

测试Clase将在其他情况下使用WebCache SystemCache ???

对不起,我的英语不好.

.net c# structuremap

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