我已经开始使用Simple Injector作为我的DI容器(主要是出于性能原因:如果有人有建议,请告诉我),但我编写的一些类使用HttpContextBase作为构造函数参数.我现在已经解决了从构造函数中删除它并创建一个Property,如下所示:
public HttpContextBase HttpContext
{
get
{
if (null == _httpContext)
_httpContext = new HttpContextWrapper(System.Web.HttpContext.Current);
return _httpContext;
}
set
{
_httpContext = value;
}
}
Run Code Online (Sandbox Code Playgroud)
但我不喜欢这个解决方案...任何建议?
由于公司政策,我在VS 2015中使用JSLint.现在我已经转移到VS2017,但似乎没有办法安装linter,因此每次我必须编写一些javascript代码时,CI上的测试很可能会失败.
任何提示?
javascript jslint visual-studio visual-studio-2015 visual-studio-2017
我有这样的情况:
public class Foo{}
public interface IBar<in TEx>
where TEx : Exception
{
Foo Build(TEx ex);
}
public class FooFactory{
public Foo Create<TEx>(TEx ex) where TEx : Exception{
// blah
}
}
Run Code Online (Sandbox Code Playgroud)
如果我调用FooFactory.Create方法传递任何Exception类型,一切正常.当我做这样的事情时,事情开始变得很奇怪:
// this is an external class, cannot be changed.
public class ExceptionContext{
public Exception Ex{get; set;}
}
var context = new ExceptionContext(){ Ex = new MyCustomException (); }
var factory = new FooFactory();
var fooInstance = factory.Create(context.Ex);
Run Code Online (Sandbox Code Playgroud)
当我调用时FooFactory.Create(),传递的异常总是类型System.Exception,而不是MyCustomException我所期望的.
有什么建议吗? …