小编Wim*_*nen的帖子

Maven特定版本的快照依赖项

有没有办法让Maven下载依赖项的特定快照版本?我知道指定这样的依赖项将下载最新的快照:

<dependency>
<groupId>groupid</groupId>
<artifactId>artifact-id</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

是否可以指定特定的快照版本?(例如artifact-id-1.0.0-20090610.041042-5)如果头部快照构建已经破坏并且尚未正式发布依赖的稳定版本,这将是有用的.

maven-2

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

htaccess通过ip范围访问文件

如何只允许文件访问具有IP地址范围的ip用户?

例如文件admin.php.范围从0.0.0.0到1.2.3.4.

我只需要配置访问一个文件而不是目录.

php .htaccess

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

Windows安装程序在产品升级期间删除版本化文件,而不是降级它

我们使用wix来创建我们的设置.对于升级,我们使用主要升级,如Rob Mensching的回答所示.(在较新的wix版本中,您可以使用MajorUpgrade元素.)这通常很有效.删除旧产品,然后安装新产品.

但是,显然上述内容并不完全等同于手动卸载旧产品然后手动安装新产品.

考虑例如以下场景:

  • 我们的产品版本1.0已发布,包含第三方dll的5.0版本
  • 我们的产品版本1.1已发布,包含相同thirdparty dll的5.1版
  • 我们产品的1.2版本已经发布,再次降级到第三方dll的5.0版本,因为我们发现新版本引入了比解决的问题更多的问题.

显然,使用上面链接的wix升级逻辑,从1.1版升级到1.2时,3rdparty dll将消失.修复是必要的,以恢复它.

还有另一种升级方式,这适用于这种情况吗?我想我正在寻找的是升级逻辑,它允许降级组件,其行为就像手动卸载旧产品然后手动安装新产品一样.

windows-installer wix

29
推荐指数
2
解决办法
4692
查看次数

依赖注入 - 几个类方法中需要的新实例

我有一些看起来像这样的代码:

public MyService(IDependency dependency)
{
    _dependency = dependency;
}

public Message Method1()
{
    _dependency.DoSomething();

}

public Message Method2()
{
    _dependency.DoSomething();  
}

public Message Method2()
{
    _dependency.DoSomething();  
}
Run Code Online (Sandbox Code Playgroud)

现在我刚刚意识到,因为依赖对象包含内部状态信息.我需要在每个方法调用中新建一个新实例

那么最好的方法是什么,仍然没有新的具体实例?

您是否会使用IoC容器并在每个方法中调用容器?或者是否有一种更流畅的方式,您只能拨打一个容器?

如果我没有使用IoC容器怎么办?是否有办法不在每个方法中新建一个具体实例?

c# dependency-injection inversion-of-control

29
推荐指数
3
解决办法
7385
查看次数

.NET Rx优于经典事件的优势?

.NET 4.0的β2已经介绍的IObservableIObserver接口.

与传统的.NET事件相比有哪些优势?这不是解决同样的问题吗?

.net events reactive-programming system.reactive

28
推荐指数
1
解决办法
5449
查看次数

在mercurial中拆分更改集的最简单方法

我很高兴使用git,但最近出于好奇心而根据朋友的观点一直在探索Mercurial,认为它在某些方面更好.

然而,我注意到的第一件事是,Mercurial似乎没有像git那样的索引.我倾向于做更多的改变然后我应该在编辑文件后git add -p用来将补丁分成单独的提交.如果更改在不同的文件中,我可能会使用MQ,但是看起来我需要先撤消更改.

是否可能有Mercurial的扩展,它提供类似索引的功能?

mercurial

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

事件,代表或接口?

假设我有一个Monkey类,有时需要获取Banana的一个实例.提供这种香蕉的方式对猴子不感兴趣,但它确实启动了香蕉采集.

现在我至少有三种方法可以将我的猴子送到香蕉供应商那里.最好的方法是什么?

1.事件

提出一个Monkey.BananaNeeded事件.事件处理程序设置BananaNeededEventArgs.Banana属性.

2.界面

调用IBananaProvider.GetBanana.该IBananaProvider实例作为构造函数参数或通过属性注入到monkey中.

3.代表

调用类型的委托System.Func<Banana>.委托作为构造函数参数或通过属性注入猴子.这个很诱人,因为它不需要声明任何额外的接口或类,但显然它不是一个受欢迎的选择.

c#

26
推荐指数
1
解决办法
871
查看次数

修复通用UserControl的嵌入资源

在重构期间,我添加了一个泛型类型参数MyControl,一个派生自UserControl的类.所以我的班级现在MyControl<T>.

现在我在运行时收到错误,指出无法找到嵌入式资源文件MyControl`1.resources.使用.NET Reflector快速查看显示资源文件实际上名为MyControl.resources,没有`1.

在该MyControl<T>.InitializeComponent方法的开头有这条线可能是引起问题的线:

 System.ComponentModel.ComponentResourceManager resources =
    new System.ComponentModel.ComponentResourceManager(
       typeof(MyControl<>));
Run Code Online (Sandbox Code Playgroud)

如何强制ComponentResourceManager使用嵌入式资源文件MyControl.resources?其他解决此问题的方法也是受欢迎的.

.net c# generics designer winforms

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

是否有人成功使用免费注册COM与.NET组件?

直到最近,我们还很高兴地使用免注册COM作为我们的原生和.NET COM组件.然而,我们遇到了一个奇怪的问题,我们的应用程序开始在Windows XP SP3上随机崩溃(但不是在Vista上),因为我们只更改了.NET程序集的版本号以从候选版本迁移到发布版本.(难道你不讨厌墨菲定律吗?)

经过多次失败的人工和磨牙之后,我们发现问题是sxs.dll中的一个已知错误,它在检索有关.NET类的信息时会导致堆损坏.有一个热修复使问题消失,但热修复不打算重新分配.

我们有点难过在免注册COM实现中存在这样一个可怕的错误.是否有人成功使用免注册COM for .NET组件?你是怎么解决这个问题的?

.net com winsxs sxs regfreecom

21
推荐指数
1
解决办法
3783
查看次数

为什么System.IO.Path.Combine有4个重载?

在.NET 4中,System.IO.Path对该Combine方法具有以下重载:

public static string Combine(params string[] paths)
public static string Combine(string path1, string path2)
public static string Combine(string path1, string path2, string path3)
public static string Combine(string path1, string path2, string path3, string path4)
Run Code Online (Sandbox Code Playgroud)

第一个是在.NET 4中添加的,以支持任意数量的路径参数.第二个在早期版本中已经存在,所以我认为它是为了向后兼容而保留的.

但我很好奇其他重载的用途是什么.第一种方法签名是否已涵盖这些用例params

编辑:我现在相信答案是"因为并非所有语言都params支持(并且传递没有params支持的数组是不方便的)".然而,stackoverflow蜂巢的想法似乎强烈反对.因此,作为妥协,我不接受任何答案.

.net c#

21
推荐指数
1
解决办法
2273
查看次数