我正在开发一个通过Ninject使用依赖注入的项目.到目前为止,它运行得很好,我很喜欢DI,但现在我已经决定需要序列化一些对象,而且我发现在DI模式之后很难做到这一点.
假设我有一个名为Foo的类,它有一个Bars列表,并通过工厂生成它们,如下所示:
public class Foo
{
private List<Bar> _bars;
private BarFactory _barFactory;
...
public void MakeBar()
{
_bars.Add(_barFactory.MakeBar());
}
}
Run Code Online (Sandbox Code Playgroud)
这是Bar,它在_barFactory.MakeBar()被调用时生成.我希望Bar可序列化:
public class Bar : ISerializable
{
private List<IPickle> _pickles;
private PickleFactory _pickleFactory;
public Bar(PickleFactory factory)
{
_pickleFactory = factory;
}
public void MakePickle(int x)
{
_pickles.Add(_pickleFactory.MakePickle(x));
}
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
//serialize member variables here
}
//Constructor called during deserialization
private Bar(SerializationInfo info, StreamingContext context)
{
//fill in member variables with data from SerializationInfo …Run Code Online (Sandbox Code Playgroud) 我是javascript编程(以及一般的脚本语言)的新手,但是当我发生语法错误或意外声明全局变量时,我一直在使用JS Lint来帮助我.
但是,有一种情况是JS Lint没有涵盖,我觉得这将非常方便.请参阅以下代码:
(function () {
"use strict";
/*global alert */
var testFunction = function (someMessage) {
alert("stuff is happening: " + someMessage);
};
testFunction(1, 2);
testFunction();
}());
Run Code Online (Sandbox Code Playgroud)
请注意,我将错误数量的参数传递给testFunction.我不会预见到我会故意遗漏一个参数或添加一个额外的参数.但是,JS Lint和JS Hint都不认为这是一个错误.
还有其他工具可以帮我抓住这个吗?或者是否有一些理由为什么传递这样的参数不应该被错误检查?