小编Geo*_*uer的帖子

使用react路由器以编程方式导航

随着react-router我可以使用Link元素创建的原生处理反应路由器链接.

我看到内部调用this.context.transitionTo(...).

我想进行导航,但不是从链接,例如下拉选择.我怎么能在代码中这样做?什么是this.context

我看到了Navigationmixin,但是我可以不用mixin吗?

reactjs react-router

1251
推荐指数
34
解决办法
63万
查看次数

如何获取代码所在的程序集路径?

有没有办法获取当前代码所在的程序集的路径?我不想要调用程序集的路径,只需要包含代码的路径.

基本上我的单元测试需要读取一些相对于dll的xml测试文件.无论测试dll是从TestDriven.NET,MbUnit GUI还是其他东西运行,我都希望路径始终正确解析.

编辑:人们似乎误解了我的要求.

我的测试库位于说

C:\项目\ MyApplication的\ daotests\BIN \调试\ daotests.dll

我想得到这条道路:

C:\项目\ MyApplication的\ daotests\BIN \调试\

当我从MbUnit Gui运行时,到目前为止这三个建议都让我失望:

  • Environment.CurrentDirectory 给出c:\ Program Files\MbUnit

  • System.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location 给出C:\ Documents and Settings\george\Local Settings\Temp\....\DaoTests.dll

  • System.Reflection.Assembly.GetExecutingAssembly().Location 与前一个相同.

.net c# reflection

746
推荐指数
20
解决办法
58万
查看次数

我什么时候应该使用访客设计模式?

我一直在博客中看到对访客模式的引用,但我必须承认,我只是不明白.我阅读了维基百科文章的模式,我理解它的机制,但我仍然对我何时使用它感到困惑.

作为最近刚刚获得装饰模式的人,现在看到它在任何地方的用途我都希望能够直观地理解这个看似方便的模式.

design-patterns visitor-pattern

308
推荐指数
14
解决办法
10万
查看次数

如何在HttpClient的HttpRequestMessage上设置cookie

我正在尝试使用web api HttpClient对端点进行发布,该端点需要以标识帐户的HTTP cookie的形式登录(这只是#ifdef发布版本之外的内容).

如何添加cookie HttpRequestMessage

c# rest asp.net-mvc-4 asp.net-web-api

218
推荐指数
5
解决办法
16万
查看次数

PHP的隐藏功能?

我知道这听起来像是一个让人尴尬的问题,但让我解释一下我来自哪里.

大学毕业后,我在PHP商店找到了一份工作.我在那里工作了一年半,并且认为我已经学到了所有有关编程的知识.

然后我在一家规模庞大的公司找到了一份单人内部开发工作室,所有工作都在C#中.在我对这个职位的承诺中,我开始阅读大量的博客和书籍,并很快意识到我认为我知道一切都是错的.我学习了单元测试,依赖注入和装饰模式,松散耦合的设计原则,继承辩论的组合等等 - 我仍然非常吸收它.毋庸置疑,我的编程风格在去年完全改变了.

现在我发现自己正在为一个朋友的初创公司做一些编码的PHP项目,我觉得完全受限制而不是用C#编程.让我感到困扰的是,必须通过追加'$ this->'来引用类范围内的所有变量.令我很生气的是,我尝试过的IDE中没有一个具有非常好的智能感知,而且我的SimpleTest单元测试方法必须从"测试"一词开始.令我疯狂的是,动态类型使我无法隐式指定方法所期望的参数类型,并且必须编写switch语句来执行方法重载.我不能忍受你不能拥有嵌套的命名空间,并且必须使用::运算符来调用基类的构造函数.

现在我无意启动PHP与C#的争论,而我的意思是说我确定有些PHP功能我不知道或者知道但是没有正确使用.我被置于我的C#宇宙中,无法看到玻璃碗外面.

所以我问,你最喜欢的PHP功能是什么?你可以做些什么,你不能或在.Net语言中更难?

php hidden-features

174
推荐指数
49
解决办法
6万
查看次数

防止突破/崩溃gulp手表的错误

我正在运行gulp 3.6.2并具有从在线示例设置的以下任务

gulp.task('watch', ['default'], function () {
  gulp.watch([
    'views/**/*.html',        
    'public/**/*.js',
    'public/**/*.css'        
  ], function (event) {
    return gulp.src(event.path)
      .pipe(refresh(lrserver));
  });

  gulp.watch(['./app/**/*.coffee'],['scripts']);
  gulp.watch('./app/**/*.scss',['scss']);
});
Run Code Online (Sandbox Code Playgroud)

任何时候我的CoffeeScript gulp手表都会出现错误停止 - 显然不是我想要的.

正如其他地方所推荐的那样,

gulp.watch(['./app/**/*.coffee'],['scripts']).on('error', swallowError);
gulp.watch('./app/**/*.scss',['scss']).on('error', swallowError);
function swallowError (error) { error.end(); }
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.

我究竟做错了什么?


为了回应@Aperçu的回答,我修改了我的swallowError方法并尝试了以下方法:

gulp.task('scripts', function () {
  gulp.src('./app/script/*.coffee')
    .pipe(coffee({ bare: true }))
    .pipe(gulp.dest('./public/js'))
    .on('error', swallowError);
});
Run Code Online (Sandbox Code Playgroud)

重新启动,然后在我的咖啡文件中创建语法错误.同样的问题:

[gulp] Finished 'scripts' after 306 ?s

stream.js:94
      throw er; // Unhandled stream error in pipe.
            ^
Error: W:\bariokart\app\script\trishell.coffee:5:1: error: unexpected *
*
^
  at …
Run Code Online (Sandbox Code Playgroud)

node.js gulp

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

Chrome> = 24 - 如何将devtools停靠在右边?

我喜欢把devtools对接到右边.我记得当我第一次看到那个选项时,当我意识到我不再需要手动分割屏幕和定位窗口时,我有多高兴.

最近版本的chrome这个选项似乎缺失了.即使在我已经安装了右侧的devtools的安装中,该选项也会被删除.

它去了哪里?

google-chrome-devtools

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

无法从程序集错误中加载类型

我在尝试学习Castle Windsor的Fluent界面时写了以下简单的测试:

using NUnit.Framework;
using Castle.Windsor;
using System.Collections;
using Castle.MicroKernel.Registration;

namespace WindsorSample {
    public class MyComponent : IMyComponent {
        public MyComponent(int start_at) {
            this.Value = start_at;
        }
        public int Value { get; private set; }
    } 
    public interface IMyComponent {
        int Value { get; }
    }

    [TestFixture]
    public class ConcreteImplFixture {
        [Test]
        public void ResolvingConcreteImplShouldInitialiseValue() {
            IWindsorContainer container = new WindsorContainer();
            container.Register(Component.For<IMyComponent>().ImplementedBy<MyComponent>().Parameters(Parameter.ForKey("start_at").Eq("1")));
            IMyComponent resolvedComp = container.Resolve<IMyComponent>();
            Assert.AreEqual(resolvedComp.Value, 1); 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我通过TestDriven.NET执行测试时,我收到以下错误:

System.TypeLoadException : Could not load type 'Castle.MicroKernel.Registration.IRegistration' from …
Run Code Online (Sandbox Code Playgroud)

.net

105
推荐指数
7
解决办法
21万
查看次数

在所有测试运行之前是否可以执行一次代码?

基本上我想告诉MSTest在启动一系列测试运行之前执行一些代码,基本上我想做的就是坚持使用一些代码Main().

我想这样做的原因是我想在集成测试运行期间使用log4net进行一些日志记录.我不能只使用log4net.Config.XmlConfiguratorassembly属性,因为它在我已经调用过的测试程序集中读取它LoggerManager.文档建议在代码入口点显式配置log4net - 但我的测试中的位置是什么?

我需要能够在TestDriven.NET和MSTest跑步者中运行我的测试.

.net mstest

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

强制运行计算属性函数

给定计算属性

vm.checkedValueCount = ko.computed(function(){
  var observables = getCurrentValues();  //an array of ko.observable[]
  return _.filter(observables, function(v) { return v() }).length;
});
Run Code Online (Sandbox Code Playgroud)

假设getCurrentValues()可以返回在代码中其他位置修改的不同可观察对象集(并且来自比observableArray更复杂的结构).

我需要checkedValueCount随时更新

  • 其中一个依赖项发生了变化
  • getCurrentValues()返回一组不同的observable.

问题是,ko.computed似乎记住了最后返回的值,并且只在依赖项更新时才更新.这处理第一种情况,但不处理后者.

我正在寻找的是一种强制checkedValueCount重新运行的方法.我可以使用的东西像:

changeCurrentValues();
vm.checkeValueCount.recalculate();
Run Code Online (Sandbox Code Playgroud)

最简单的说,鉴于我有

a = ko.computed(function() { return Math.random() })
Run Code Online (Sandbox Code Playgroud)

如何强制调用a()两次以返回不同的值.

knockout.js computed-observable

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