我最近开始将事物从jQ迁移到更结构化的框架VueJS,我喜欢它!
从概念上讲,Vuex对我来说已经是一个典型的转变,但我相信我现在知道它的全部内容,完全得到它!但是存在一些小的灰色区域,主要是从实施的角度来看.
我觉得这个设计很好,但不知道它是否与单向数据流的Vuex 周期相矛盾.
基本上,从动作中返回一个promise(类似)对象被认为是一种好习惯吗?我将它们视为异步包装器,具有失败状态等,因此似乎非常适合返回一个承诺.相反,mutators只是改变了一些东西,而且是商店/模块中的纯粹结构.
我需要使用特定的接口注册我的Autofac容器,对于这种情况我想解决mock.
我该怎么做?
我试过了:
var AppContainer = ApplicationContainer.GetApplicationContainer();
var cb = new ContainerBuilder();
cb.RegisterType<Mock<IStudyLoader>>().As<IStudyLoader>().SingleInstance();
cb.Update(AppContainer);
Run Code Online (Sandbox Code Playgroud)
我不想改变我的代码来解决别的问题IStudyLoader,但Mock<IStudyLoader>不能替代IStudyLoader; 例如Mock<IStudyLoader>.Object可以替代IStudyLoader,但我不能注册,Mock<IStudyLoader>.Object因为它不是一种类型.
请纠正我; 我觉得我错过了什么.
(我有另一个限制,我不能使用其他容器ApplicationContainer.GetApplicationContainer())
(我认为在测试时手动注入依赖项会更好,但这次我不想更改生产代码.)
我刚刚开始拆分包含所有产品代码的Git存储库,其中包括共享库,服务器,客户端和工具代码.
作为消除我们对DCVS的一些技术债务的一部分,我们建议将我们的共享客户端和服务器库移动到Nuget存档,该存档将对开发和发布分支具有严格控制的推送权限,以强制推动拉动请求我们一直懒散.分裂部分没什么大不了的; 我根据git filter-branch自己的喜好量身定制了历史保留,现在我正在研究如何将存储库重新组合在一起.
目前,在我准备将它们打包(以及正确的单元测试等)之前,库并不完全清晰,需要进行一些重构,并且希望能够对两个存储库进行更改,重点是代码审查,作为中短期解决方案.
我已经阅读了足够的内容,git subtree并git submodule了解他们的相对优势和劣势,但仍然对于该怎么做有冲突.虽然绝大多数资源git submodule由于其对那些不知道如何使用它的人的脆弱性而受到反对使用(有罪!),但它的另一种选择git subtree似乎缺乏我正在寻找的显式引用功能.
如果有人有类似我正在寻找的设置,或者有不同的工作流程,你能评论一下吗?当我"等待一口"时,我将离开并测试这两种策略,并希望有更高的评估.
我一直想知道Stream在C#.Net中使用类的最佳实践是什么.提供已写入或提供的流是否更好?即:
public Stream DoStuff(...)
{
var retStream = new MemoryStream();
//Write to retStream
return retStream;
}
Run Code Online (Sandbox Code Playgroud)
而不是;
public void DoStuff(Stream myStream, ...)
{
//write to myStream directly
}
Run Code Online (Sandbox Code Playgroud)
为了生命周期控制,我总是使用前一个例子,但我有这种感觉,Stream因为缺少一个更好的词,这是一种"流式传输"的糟糕方式.
我有一个动态组件,可以使用记录的动态组件语法在运行时解析和绑定它。
<div class="field">
<component v-if="component" :is="component" @valueUpdated="onUpdate($event)"></component>
</div>
Run Code Online (Sandbox Code Playgroud)
决定使用安装时分配的道具。
无论出于何种原因,当动态渲染的子组件发出事件时this.$emit('eventName', /*someData*/),父组件似乎听不到它。标准组件中使用的方法是否适用于动态呈现的组件?道具似乎有效,所以也许我做的不正确?
我已经确定我的控制器有些混乱,并决定采用一个WebAPI项目中使用的管道样式的系统。该管道由行动,即得到越来越普遍,即:ViewAccountDetailsAction> AccountAction> AuthenticatedAction> EmptyAction。这些动作都按继承顺序添加到子管道,并公开成员或针对不同场景的抽象方法。
我的问题在于如何从管道元素返回视图。在WebAPI示例中,返回一个IHttpActionResult不需要执行任何视图呈现的操作非常简单,但是,需要MVC通过Razor的附加步骤以不同的方式呈现其响应。
由于Controller公开了internal protected诸如View()或的辅助方法RedirectToAction,因此我无法在控制器本身之外使用这些方法。
是否有一种优雅的方法来渲染这些内容?我已经看到了几种解决方法,每种方法要么麻烦,要么给我不舒服的感觉。
目前,我最喜欢的方法是使internal基类隐藏受保护的方法,并使它们成为内部对象,同时调用基方法。然后将控制器实例提供给实例化操作。这有什么过分的错误吗?我想不出任何可虐待的案件,但想看看是否有任何社区对此事达成共识。
考虑一个Foo完全实现的类IFoo.同时,考虑一项任务Task<IFoo>.
为什么在调用以下内容时会抛出编译错误;
Task<IFoo> task = Task.Factory.StartNew(() => new Foo());
Run Code Online (Sandbox Code Playgroud)
编译器声明它无法从源类型转换Task<Foo>为Task<IFoo>.虽然这是有道理的,因为它们本质上是两种不同的类型,它不会与IList<IFoo> list = new List<IFoo>{new Foo(/* construct */)};其他类似的任务处于相同的前提下吗?
目前我正在强迫演员进入界面,但这感觉不必要.
基本上添加一些滑块功能,并想在错误的CSS类下抛出滑块以在某些条件下突出显示.
我正在编写工具提示以在句柄上方滑动,并且当添加错误样式时,我想将它抛出所有元素,除了这些句柄.句柄被封装在它们自己的<div class="tooltip">标签中,但是,当我调用选择器来调用时var div = $(this).find('div:not([class=.tooltip])');,这个封装div类的子元素在我随后调用时更新了它们的样式div.addClass("ui-state-error ");
TL; DR:有没有办法调用not()选择器,以便排除一个元素及其所有子元素.我知道显式列出子元素是一个快速的脏方法,但是JQuery库中有什么东西可以容纳这个吗?
请注意,我故意避免使用ID标记,因为此控件最终会将其转换为ASP用户控件,并且我希望以后避免使用冲突的ID标记.
c# ×4
vue.js ×2
.net ×1
asp.net-mvc ×1
autofac ×1
casting ×1
es6-promise ×1
git ×1
git-subtree ×1
inheritance ×1
interface ×1
jquery ×1
jquery-ui ×1
memorystream ×1
moq ×1
nuget ×1
promise ×1
razor ×1
stream ×1
vuex ×1