小编Lou*_*hys的帖子

使用Castle Windsor IoC容器时添加服务初始化方法

如果我的服务有一些初始化代码,我知道两个选项:

  1. 实现ISupportInitialize.
    Pro:仅依赖于.NET本机接口.
    Con:我通常只使用BeginInit(),所以总是没有必要的空EndInit()代码

  2. 实施Castle Core的IInitializable.
    Pro:只需要实现一种方法.
    Con:我必须让我的课程依赖于Castle Core.

还有更好的选择吗?

.net c# castle-windsor ioc-container

4
推荐指数
1
解决办法
1980
查看次数

ValueInjecter在映射属性时忽略大小写

例如,我想将属性Foo.ID映射到Bar.Id,是否可能?

c# valueinjecter

4
推荐指数
1
解决办法
735
查看次数

免费工具从C#程序集或项目生成类图或方法表?

是否有一个免费,简单和快速的工具,可以生成类图或甚至一个简单的表包含C#程序集或项目中的类和方法列表?基本上我需要的只是可读格式的类和方法列表.如果它也需要xml文档会更好,但它不是必需的.

我想使用Reflection实现它应该不会太难.

.net c# reflection class-diagram

3
推荐指数
1
解决办法
5146
查看次数

如何通过NHibernate使基于整数的值为null

我有一个可以为空的INTEGER列,并将其映射到int属性.如何通过NHibernate将此值更改为null?int不能为空.

.net nhibernate null primitive-types sqldatatypes

3
推荐指数
1
解决办法
2739
查看次数

如何在锁定语句中实现互斥,但如果锁定,则会跳过该块?

使用lock语句,可以"确保一个线程不进入代码的关键部分而另一个线程在关键部分.如果另一个线程试图输入锁定的代码,它将等待,阻塞,直到该对象被释放".

如果我想要的行为是,如果另一个线程试图输入锁定的代码,它将跳过整个代码(而不是等待锁被释放)怎么办?我想到的一个想法就是使用旗帜,比如说

if(flag) return;
flag = true;
//do stuff here
flag =false;
Run Code Online (Sandbox Code Playgroud)

但我知道这不安全,因为两个线程可以在任何人设置为true之前传递第一行,或者如果异常情况下该标志永远不会设置为false.你能提出改进或替代吗?

.net c# concurrency thread-safety mutual-exclusion

3
推荐指数
1
解决办法
1735
查看次数

如何检查谁在C#中使用某个端口?

如何确定使用哪个进程/哪个可执行文件,比如我的localhost的端口80?我想知道,例如,如果它是Apache Server等.

我们可以从ipProperties.GetActiveTcpListeners()获取一些信息吗?我只看过本地端点,远程端点和状态.

c# port networking tcp-ip

3
推荐指数
1
解决办法
644
查看次数

在哪里声明一个simpleType以便可以在同一XSD的多个元素中使用它?

现在,我有一个XSD文件(例如FOO_SCHEMA.xsd),看起来像这样:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="FOO">
        <xs:annotation>
            <xs:documentation>Comment</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="BAR1" type="xs:string" />
                <xs:element name="BAR2" type="xs:string" />
                <xs:element name="BAR3" type="xs:string" />
                <xs:element name="BAR4" type="xs:string" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

我想修改两个元素(例如BAR1和BAR2)以使用一次。我知道如何为其中之一使用它,

<xs:element name="BAR1">
   <xs:simpleType>
       <!-- my type definition here -->
   </xs:simpleType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

但是我想在两个(也许更多)元素中使用它,而且我不确定如何在不复制相同的简单类型定义的情况下如何做到这一点。从谷歌搜索,似乎我需要用一个名称声明类型

但我不知道该声明放在何处。我尝试将它放在与xs:complexType和其他几个级别相同的级别中,但是被架构验证器拒绝。知道在哪里放置此声明吗?任何的想法?

xml xsd simpletype

3
推荐指数
1
解决办法
3867
查看次数

如何获取 XElement 并在它不存在时创建它?

有没有办法在 XContainer 中使用类似Element方法的方法,但是如果容器中不存在具有指定名称的 Element ,则会创建一个新的 XElement 并返回它?

.net c# xml linq-to-xml

3
推荐指数
1
解决办法
2305
查看次数

如何获得类型的别名?

是否可以实现像这样的方法

string GetFriendlyName(Type type) { ... }
Run Code Online (Sandbox Code Playgroud)

在.NET中,如果可能,将返回该类型的CLR别名?在这种情况下GetFriendlyName(typeof(Foo))将返回"Foo",但GetFriendlyName(typeof(int))将返回"int"而不是像MemberInfo.Name中的"Int32"

.net c# reflection types

3
推荐指数
1
解决办法
1113
查看次数

如何显示omnicomplete的自动完成列表而不自动填充当前文本

我正在学习omimomplete的vim.我想知道是否可以在没有自动填充当前文本的情况下显示omnicomplete列表.例如,

如果我输入"str.c"然后调用omnicomplete,它将显示一个包含以"c"开头的可能单词的列表,并自动完成当前文本,比如说"大写".

在此输入图像描述

例如,如果我正在寻找的方法是计数,我必须在列表中一直向下滚动才能找到它,或者删除"apitalize"部分,然后键入o,等等.是否可以只显示如果我在c之后调用它,它将显示列表而不自动完成以大写?例如下面的内容,我仍然可以输入o来快速计算

在此输入图像描述

vim autocomplete text-editor omnicomplete

3
推荐指数
1
解决办法
7531
查看次数