小编Sam*_*der的帖子

IsAssignableFrom()在返回true时返回false

我正在开发一个插件系统,它可以加载包含在指定文件夹中的.dll.然后我使用反射来加载程序集,遍历它们包含的类型并识别实现我的IPlugin接口的任何类型.

我正在使用类似于以下内容的代码进行检查:

foreach(Type t in myTypes )
{
    if( typeof(IPlugin).IsAssignableFrom(t) )
    {
       ...
    }
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,IsAssignableFrom()在返回true时保持返回false.我已经尝试t通过明确地给它一个应该传递的类型替换它,并且它工作正常,但由于某种原因它不能使用从加载的程序集返回的类型.为了使事情变得陌生,代码在我的同事的机器上工作正常,但在我的机器上却没有.

有谁知道任何可能导致这种行为的事情?

谢谢

.net c# reflection

17
推荐指数
3
解决办法
9335
查看次数

SpecFlow/Cucumber/Gherkin - 使用场景大纲中的表格

希望我能够清楚地解释我的问题,以便其他人理解,我们在这里,想象我有以下两个假设情景:

Scenario: Filter sweets by king size and nut content
Given I am on the "Sweet/List" Page
When I filter sweets by 
    | Field               | Value  |
    | Filter.KingSize     | True   |
    | Filter.ContainsNuts | False  |
Then I should see :
    | Value            |
    | Yorkie King Size |
    | Mars King Size   |

Scenario: Filter sweets by make
Given I am on the "Sweet/List" Page
When I filter sweets by 
    | Field        | Value  |
    | Filter.Make  | …
Run Code Online (Sandbox Code Playgroud)

automated-tests cucumber specflow gherkin

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

如何在配置文件中没有设置的情况下创建WCF客户端?

我刚刚在一个月前开始研究WCF.如果我问一些已经回答的问题,请原谅我.我试着先搜索但什么也没找到.

我读了这篇文章,WCF文件传输:在IIS中托管的流媒体和分块通道.它很棒.现在我想将客户端代码集成到我的应用程序中,这是一个在AutoCAD中运行的DLL.如果我想使用配置文件,我必须更改acad.exe.config,我认为这不是一个好主意.所以我想如果可能的话,我想将配置文件中的所有代码移动到代码中.

这是配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IService" closeTimeout="00:01:00"
                openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                messageEncoding="Mtom" textEncoding="utf-8" transferMode="Buffered"
                useDefaultWebProxy="true">
                <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                <security mode="None">
                    <transport clientCredentialType="None" proxyCredentialType="None"
                        realm="" />
                    <message clientCredentialType="UserName" algorithmSuite="Default" />
                </security>
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://10.1.13.15:88/WCFStreamUpload/service.svc/ep1"
            binding="basicHttpBinding"
            bindingConfiguration="BasicHttpBinding_IService"
            contract="MGFileServerClient.IService"
            name="BasicHttpBinding_IService" />
    </client>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

你能帮我改变一下吗?

wcf config configuration-files

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

不要声明只读可变引用类型 - 为什么不呢?

我一直在阅读这个问题和其他一些答案,虽然我在更改引用和更改当前实例的状态之间有所区别,但我不确定为什么这意味着我不应该只读它.这是因为标记某些东西只是告诉编译器有关该实例的特殊内容,所以它能够将它当作线程安全处理时实际上可能不是吗?

据推测,有些情况下我不希望实例能够被更改,但是不介意实例的状态是否改变(单例可能./ me准备火焰)标记实例的后果是什么readonly如果我想要这个?

c# fxcop readonly immutability

12
推荐指数
3
解决办法
2294
查看次数

从哪里获得NCover?

我意识到NCover已经商业化了.我正在寻找免费版本.我在哪里可以获得NCover的最新免费版本?

NCover网站只讨论商业产品的试用版,而不是免费版.

.net ncover

11
推荐指数
2
解决办法
5969
查看次数

如何管理缓存的IDisposable对象?

我有一个创建成本昂贵的对象,它使用一些必须在完成时显式释放的非托管资源,因此实现IDisposable().我想要一个缓存,例如这些昂贵的资源,以便最大限度地降低创建成本,但我很难知道如何处理这些处理.

如果使用这些对象的方法负责处理,那么我最终会在缓存中放置已处理的实例,然后必须重新创建实例,从而破坏缓存的重点.如果我没有在使用它们的方法中处理对象,那么它们永远不会被处理掉.我认为当它们从缓存中取出时我可以处理它们,但是我可能最终会处理一个仍被方法使用的实例.

让它们超出范围并由垃圾收集器收集并在那时释放资源是否有效?这感觉不对,并反对他们是一次性的想法......

.net caching idisposable

10
推荐指数
1
解决办法
1284
查看次数

SELECT 1 = 1不起作用

我的问题有点泛,但是我想说我想在SQL Server中测试一些表达式.我写SELECT 1=1或者SELECT 'a' > 'B'按F5,希望看到结果,就像我打字时那样SELECT 0, 1.
但我得到了一个错误.这是为什么?我应该用什么来动态评估这些表达式?

sql-server

10
推荐指数
2
解决办法
7442
查看次数

为什么我在git中切换分支时无法摆脱差异,以及如何解决它?

以下是命令行的一些相关输出(poshgit显示状态):

[Branch1]> git checkout Branch2
Switched to branch 'Branch2'
[Branch2 +0 ~3 -0]> 
[Branch2 +0 ~3 -0]> git diff --ignore-space-at-eol
[Branch2 +0 ~3 -0]> git checkout .
[Branch2 +0 ~3 -0]>
Run Code Online (Sandbox Code Playgroud)

我尝试了这个问题中提出的解决方案

[Branch2 +0 ~3 -0]> git reset --hard
HEAD is now at c8be749 some comment
[Branch2 +0 ~3 -0]> git reset HEAD
Unstaged another commit:
M       Src/somefile
M       Src/someotherfile.cs
M       Src/athirdfile.cs
[Branch2 +0 ~3 -0]>
Run Code Online (Sandbox Code Playgroud)

这是如何发生的,除了提交更改之外,我如何解决它,因为我似乎无法消除差异.即使藏匿也无济于事.

关于我们如何陷入这种混乱以及如何摆脱它的一些建议将非常感激.

我现在已经能够可靠地重现这一点,所以我能够获得更明确的答案.如果我刚刚克隆了我的回购,然后切换到分支然后回到主人我得到一些文件,说他们有变化.我尝试过使用core.autocrlf的设置,但这似乎只是改变了受影响的文件数量,并没有完全解决问题.

我该怎么做才能尝试解决这个日益恼人的问题?

git

10
推荐指数
2
解决办法
267
查看次数

Lucene/Solr如何在多场/分面搜索中实现高性能?

上下文

这是一个主要关于Lucene(或可能是Solr)内部的问题.主题是分面搜索,其中搜索可以沿着对象的多个独立维度(方面)发生(例如,汽车的大小,速度,价格).

当使用关系数据库实现时,对于大量方面,多字段索引没有用,因为可以按任何顺序搜索构面,因此使用特定有序多索引的机会很小,并且创建所有可能的索引排序是不堪.

Solr被广告以应对分面搜索任务,如果我认为正确必须与Lucene(据称)在多字段查询(其中文档的字段与对象的构面相关)上表现良好.

Lucene 的反向索引可以存储在关系数据库中,并且使用单字段索引也可以通过RDBMS轻松地实现匹配文档的交叉.

因此,Lucene应该有一些先进的多字段查询技术,而不仅仅是根据反向索引获取匹配文档的交集.

所以问题是,这种技巧/技巧是什么?更广泛地说:为什么Lucene/Solr在理论上可以实现比RDBMS更好的分面搜索性能(如果是这样)?

注意:我的第一个猜测是Lucene会使用一些空间分区方法来将从文档字段构建的向量空间划分为维度,但据我所知,Lucene并非纯粹基于向量空间.

lucene internals faceted-search

9
推荐指数
1
解决办法
5819
查看次数

最大化人与人之间的互动

圆桌会议.并且有n个人,其中一些人是彼此的朋友.如果他是朋友,坐在桌子上的人可以与他附近的人互动.

我们必须找到一种算法来将n个人安排在桌面上,以便最大化整个交互.

algorithm optimization

9
推荐指数
1
解决办法
365
查看次数