假设我写了一个jQuery插件并将其添加到我的存储库(在我的案例中为Mercurial).比方说,这是一个单独的文件jquery.plugin.js.我正在使用BitBucket来管理这个存储库,它的一个功能是下载页面.所以,我添加jquery.plugin.js了下载之一.
现在我想提供我的插件的缩小版本,但我不确定最佳做法是什么.我知道它应该可以在下载页面上找到jquery.plugin.min.js,但是每次我更新时都应该对它进行版本控制以反映未公开的版本吗?
我看到控制缩小版本的版本最明显的问题是,每次我对未经编译的版本进行更改时,我可能会忘记更新它.
那么,我应该版本控制缩小文件吗?
我正在使用C#4.0.Visual Studio中的"优化代码"已打开.
在类中考虑以下代码:
Dictionary<int, int> dictionary = new Dictionary<int, int>();
public void IncrementDictionary(int key) {
if (!dictionary.ContainsKey(key)) {
dictionary[key] = 1;
} else {
dictionary[key]++;
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,调用以IncrementDictionary执行以下两项操作之一:
key,则创建一个值并将其初始化为1.现在看看当我使用ILSpy反编译结果时会发生什么:
Dictionary<int, int> dictionary = new Dictionary<int, int>();
public void IncrementDictionary(int key) {
if (!dictionary.ContainsKey(key)) {
dictionary[key] = 1;
return;
}
Dictionary<int, int> dictionary2;
(dictionary2 = dictionary)[key] = dictionary2[key] + 1;
}
Run Code Online (Sandbox Code Playgroud)
注意:在使用它的实际生产代码中,优化器/编译器还会创建:int key2 = key;并key2在最后一行中使用.
好的,var已被取代Dictionary<int, int> …
我仍然是DI的新手,我试图理解我是否以错误的方式思考问题.当我想表示一个依赖于IRandomProvider的Die对象时,我正在解决玩具问题.那个界面很简单:
public interface IRandomProvider
{
int GetRandom(int lower, int upper);
}
Run Code Online (Sandbox Code Playgroud)
我想要一个看起来像这样的Die构造函数:
Die(int numSides, IRandomProvider provider)
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用具有如下方法的静态DIFactory:
public static T Resolve<T>()
{
if (kernel == null)
{
CreateKernel();
}
return kernel.Get<T>();
}
Run Code Online (Sandbox Code Playgroud)
CreateKernel只是绑定到IRandomProvider的特定实现.
我希望能够用以下方式调用:
DIFactory.Resolve<Die>(20);
Run Code Online (Sandbox Code Playgroud)
如果没有制作特殊版本的"Resolve",我就无法完成这项工作,这可以让我处理ConstructorArgs.这似乎使事情变得过于复杂,并且需要我为其中的每个其他实例修改DIFactory,以及绑定到构造函数参数的特定名称.
如果我重构Die类不使用int构造函数,一切正常.但现在有人必须记住初始化numSides参数,这似乎是一个坏主意,因为它是类的要求.
我怀疑这对DI来说是一个糟糕的心理模型.任何人都可以开导我吗?
我正在尝试动态更改按钮的文本.但是按钮的UI会搞砸.知道为什么吗?http://jsfiddle.net/L6xRZ/
使用Symfony2,我需要检查控制器,我是从移动设备或桌面Web浏览器调用的.
根据请求的来源,根据屏幕大小和条件呈现不同的树枝模板.
这样做有什么好办法?我们在Controller中有什么检查这个?
我下载了MySQL,我正在尝试设置MySQL授权表,但是当我键入:
scripts/mysql_install_db --basedir=/usr/local
Run Code Online (Sandbox Code Playgroud)
我得到上面的错误.
我不确定如何修复它,就像my-default.cnf在support_files目录中一样,我相信我basedir正确设置.
(这是在mac btw上)
我正在重写我的Textarea Line Count插件(< - 无耻插件),并有这个问题:
当我打电话时$("#someElement").css("letter-spacing"),我会获得ems或其他任何值的价值px吗?基于这个例子:http://jsfiddle.net/xhhr2/,至少在Google Chrome中,似乎jQuery或浏览器正在px为我转换测量值.我可以一直期待这种行为吗?
我使用Minify来缩小和缓存我的所有脚本请求.我只希望我的用户能够访问JavaScript文件的缩小版本.
缩小谎言,www.example.com/min我的脚本在www.example.com/scripts.如何阻止直接访问doc_root/scripts我未明确的JavaScript文件所在的位置.我宁愿不把它们从文档根目录中删除,但它是一个选项.
请注意我正在使用Zend Framework,因此我的应用程序的实际根目录转移到了www.example.com/public.htaccess文件处理重写.
我正在使用MEF来允许用户扩展我的C#库.它到目前为止工作得很好,但是现在我正试图以我以前没见过的方式使用它.
我到目前为止看到的MEF的主要用例是:
IPerson)IPoliceman : IPerson,添加功能)ImportMany,应用程序IPerson根据必须执行的操作用于搜索正确的内容但我需要这样的事情:假设我有一个税收计算器,它接受一堆参数并根据这些参数返回估计税.我希望用户能够使用MEF创建插件来修改这些计算的完成方式.应该只能在任何时候加载一个执行此操作的插件.否则,我如何决定使用哪种替代实现?
所以基本上,我的问题归结为:通常MEF允许添加类和方法的实现.如何使用它来允许用户替换实现?
问题: 我正在寻找一种方法来简化继承类的调试器类型代理的构造.因此,调试从另一个继承的类时,我应该看到并排侧的属性:基类的基本属性,再加上父类的新特性.
这是我到目前为止所尝试的:
NewA的类型代理继承自A.属性不是并排显示的; 基本属性是伞[sic]下Base.*****A物业NewA,只是蒙上目前NewA到A,与[DebuggerBrowsable(RootHidden)]:Visual Studio中挂起:( 我知道我可以只将基类的属性添加到NewA代理中,但我试图避免这种情况.这对于具有许多属性的类来说太过分了.
说明:
我在我的DebuggerTypeProxy一些类中使用了该属性,因此我可以控制在调试期间浏览时类的外观.例如:
public class A {
private String _someField;
public String SomeField {
get {return _someField;}
}
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,工具提示调试信息显示为:

...所以我使用DebuggerTypeProxy来隐藏支持字段:
[DebuggerTypeProxy(typeof(AProxy))]
public class A {
// ...
internal class AProxy {
A _a;
AProxy (A a){
_a = a;
}
public String SomeField {
get {return _a.SomeField;}
}
}
}
Run Code Online (Sandbox Code Playgroud)
......一切都与世界是对的:

现在,我创建了一个继承自A的类. …