小编ale*_*rul的帖子

C#mutex - 从ASP.NET和控制台应用程序调用错误

我使用全局命名的互斥锁来实现ASP.NET应用程序和控制台应用程序之间的文件访问同步.

在运行ASP.NET应用程序时,控制台应用程序无法获得互斥锁 - 正如预期的那样.在运行控制台应用程序时,ASP.NET应用程序将抛出UnauthorizedAccessException: Access to the path 'Global\TheNameOfTheMutex' is denied.

我将尝试捕获异常并将其视为未能获取互斥锁,但我想知道为什么它会像这样?如果从两个不同的浏览器访问ASP.NET应用程序,并且运行多个实例时控制台应用程序也按预期运行,则ASP.NET应用程序按预期运行.

更新:在Windows XP上,当ASP.NET应用程序运行并且我尝试启动控制台应用程序时,也会抛出异常.

用于同步的代码位于通用程序集中:

using (Mutex m = new Mutex(false, "Global\\TheNameOfTheMutex")) // exception thrown
{
  try
  {
    lock = m.WaitOne(0, false);
  }
  catch (AbandonedMutexException)
  {
    // ...
  }

  if(lock)
  {
    // ...

    m.ReleaseMutex();
  }
}
Run Code Online (Sandbox Code Playgroud)

环境:Windows Server 2008,IIS 7,ASP.NET 2.0

c# asp.net mutex

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

使用System.Xml.Linq命名空间显式元素关闭标记

我使用(.NET 3.5 SP1)System.Xml.Linq命名空间来填充带有div标签的数据的html模板文档(然后将其保存到磁盘).有时div标签是空的,这在HTML方面似乎是一个问题.根据我的研究,DIV标签不是自动关闭的.因此,至少在Firefox下,a <div />被认为是一个没有匹配结束标记的开始div标签.

所以,当我通过声明创建新的div元素时:

XElement divTag = new XElement("div"); 
Run Code Online (Sandbox Code Playgroud)

如何强制生成的XML <div></div>代替<div />

c# xml linq-to-xml

6
推荐指数
1
解决办法
4298
查看次数

什么是Windows Vista相当于属性中的版本选项卡?

在Windows XP中,只要右键单击以选择特定DLL的属性,就可以访问"版本"选项卡.

在Windows Vista中,有一个Details表,它有一些(但不是全部)Version选项卡中常用的可显示项.特别是,缺少大会版本.

这对我来说是一个令人头疼的问题,因为我有许多具有相同文件版本但不同程序集版本的DLL.现在,我无法区分它们之间的区别.

有什么方法可以在Vista中查看汇编版本吗?

PS这是我的一个部署问题,因为DLL之间的差异是程序集版本,我可以在Windows XP中查看,但在Windows Vista中不能查看.所以,我无法判断我们是否部署了正确的DLL,因为我无法在Windows Vista机器中查看它.

dll windows-vista windows-server-2008

6
推荐指数
1
解决办法
1914
查看次数

spring:一个接收Classes列表的bean

我想在我的Spring XML上下文中定义一个bean,它具有类型List类型的属性:ie List<Class<?>> classes

我如何向bean发送一些类,比如java.lang.String和java.lang.Integer?

该列表不需要是可重用的,即我不会在另一个bean中引用它.

java spring dependency-injection inversion-of-control

6
推荐指数
1
解决办法
6554
查看次数

NInject可以按需加载模块/组件吗?

NInject中是否有设施允许我按需在其他模块(程序集)中加载服务?

assemblies ninject inversion-of-control

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

使用依赖注入进行内部操作的类库的最佳实践是什么?

在构建足够复杂的类库以使用内部依赖注入时,我应该注意什么?

假设它将使用Castle Windsor(作为示例),配置容器的最佳位置/方法是什么,假设该库将由简单的控制台应用程序(没有DI)使用,Web表单使用相同的容器( Castle Windsor)和使用不同容器(NInject)的网络应用程序?

c# dependency-injection inversion-of-control

6
推荐指数
1
解决办法
3326
查看次数

应该通过IOC容器构建什么?

如何确定应通过IOC容器构建哪些类,哪些不应该.我曾经处理过两个极端的项目,似乎只有当类指定特定的技术,如日志记录或数据访问时,才应该使用接口?

人们在哪里划清界线?

.net dependency-injection inversion-of-control

6
推荐指数
1
解决办法
150
查看次数

DI和Singleton Pattern在一个实现中

我想使用Windsor IOC/DI框架重构一些代码,但我的问题是我有一些Singleton类和Factory模式类,我不确定是否可以使用DI实现Singleton或Factory.

有没有人有任何想法,如果有可能,怎么样?

c# inversion-of-control

6
推荐指数
1
解决办法
1066
查看次数

可以Castle.Windsor自动解决具体类型

我们正在为C#项目评估IoC容器,Unity和Castle.Windsor都很突出.我喜欢Unity的一件事(NInject和StructureMap也这样做)是明显如何构造它们的类型不必在IoC容器中注册.

有没有办法在Castle.Windsor做到这一点?我对Castle很公平.温莎要说它不这样做吗?有没有设计理由故意不这样做,或者是疏忽,还是只是没有被视为重要或有用?

我知道container.Register(AllTypes...在温莎,但这不是一回事.它不是完全自动化的,而且非常广泛.

为了说明这一点,这里有两个NUnit测试通过Unity和Castle.Windsor做同样的事情.Castle.Windsor失败了.:

namespace SimpleIocDemo
{
    using NUnit.Framework;
    using Castle.Windsor;
    using Microsoft.Practices.Unity;

    public interface ISomeService
    {
        string DoSomething();
    }

    public class ServiceImplementation : ISomeService
    {
        public string DoSomething()
        {
            return "Hello";
        }
    }

    public class RootObject
    {
        public ISomeService SomeService { get; private set; }

        public RootObject(ISomeService service)
        {
            SomeService = service;
        }
    }

    [TestFixture]
    public class IocTests
    {
        [Test]
        public void UnityResolveTest()
        {
            UnityContainer container = new UnityContainer();
            container.RegisterType<ISomeService, ServiceImplementation>();
            // Root object needs no registration …
Run Code Online (Sandbox Code Playgroud)

.net castle-windsor ioc-container inversion-of-control unity-container

6
推荐指数
1
解决办法
2328
查看次数

Mercurial:一些与.hgignore有关的问题

我已经工作了很长时间,.hgignore文件很好,最近添加了一种新类型的文件可以忽略.运行"hg status"时,我注意到了这一点:

M .hgignore
Run Code Online (Sandbox Code Playgroud)

所以Mercurial认为这.hgignore是一个需要跟踪的文件(如果它是项目的根).

现在我已经阅读了各种文档,但我的观点没有特别说明,所以这里有一些非常详细的问题,希望可以帮助我解决这个问题(如果有人回答可以引用并解决这三点,那就太棒了!每个问题是/否答案]):

  • 应该.hgignore是项目的根源?(我想它应该,看到开发人员可能正在开发几个项目,这些项目都有不同的.hgignore要求)

  • 可以.hgignoreBE水银被忽略?

  • 如果它可以忽略,应该 .hgignore被Mercurial忽略(这与前一个问题不同)

.hgignore应该被忽略的情况下,如果你使用了一个非常古老和不完整的东西,你会突然回滚的方式不会发生一些非常糟糕的事情吗?.hgignore

我认为我发现某些每用户IDE项目文件发生了奇怪的事情(我并不是说所有的IDE项目文件只是每个用户,但有些肯定是)应该被忽略,但是用户回滚到一个旧版本,旧版本.hgignore被使用,然后突然被忽略的文件被提交,因为旧版本.hgignore没有排除这些.

mercurial dvcs hgignore

6
推荐指数
1
解决办法
1328
查看次数