小编Pre*_*ten的帖子

使用仅在执行时知道的类型参数调用泛型方法

编辑:

当然,我的真实代码看起来并不完全像这样.我试着编写半伪代码,以便更清楚地表达我想做的事情.

看起来它只是把事情搞砸了.

所以,我真正想做的是:

Method<Interface1>();
Method<Interface2>();
Method<Interface3>();
...
Run Code Online (Sandbox Code Playgroud)

嗯......我想也许我可以用反射把它变成一个循环.所以问题是:我该怎么做.我有反射的浅识.所以代码示例会很棒.

场景如下所示:

public void Method<T>() where T : class
{}
public void AnotherMethod()
{
    Assembly assembly = Assembly.GetExecutingAssembly();

    var interfaces = from i in assembly.GetTypes()
    where i.Namespace == "MyNamespace.Interface" // only interfaces stored here
    select i;

    foreach(var i in interfaces)
    {
        Method<i>(); // Get compile error here!
    }
Run Code Online (Sandbox Code Playgroud)




原帖:

嗨!

我正在尝试遍历命名空间中的所有接口,并将它们作为参数发送到这样的泛型方法:

public void Method<T>() where T : class
{}
public void AnotherMethod()
{
    Assembly assembly = Assembly.GetExecutingAssembly();

    var interfaces = …
Run Code Online (Sandbox Code Playgroud)

c# linq generics reflection

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

NightwatchJS和WebdriverIO有什么区别?

正如标题所述,Nightwatch.js和Webdriver.io有什么区别?

看起来他们有相同的语法,并做几乎相同的事情.他们有什么不同?

我需要在它们之间做出选择.

nightwatch.js webdriver-io wdio-v4 wdio-v5

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

合并msi和exe

我的部署项目创建了.msi文件和.exe文件.是否可以将这些合并为一个.exe?

c# deployment

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

在Bower中指定版本号

在编写bower.json时,您可以在依赖项中指定版本号.有时我看到人们写作

{
...
    "devDependencies" : {
        "grunt" : "~0.3.13",
    }
}
Run Code Online (Sandbox Code Playgroud)

究竟是什么意思?为什么不写> = 0.3.13?

这是某种最佳做法吗?

javascript npm semantic-versioning bower

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

在C#中捕获多个关键点

Windows窗体表单中工作时,如何在C#中捕获多个键?

我似乎无法同时获得向上箭头和向右箭头.

c# winforms

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

如何在Windows窗体组合框中捕获回车键

当组合框处于活动状态时,如何在Windows窗体组合框中捕获回车键?

我试图听KeyDown和KeyPress,我已经创建了一个子类并重写了ProcessDialogKey,但似乎没有任何效果.

有任何想法吗?

/ P

c# windows combobox winforms

15
推荐指数
3
解决办法
4万
查看次数

C#双打显示逗号而不是句号

我几乎和这个帖子中的人有同样的问题:

转换具有句点而不是逗号的浮点数?

这样我的

double x = 234.4;
string y = x.ToString();
Run Code Online (Sandbox Code Playgroud)

我得到的y == "234,4";

更糟糕的是... Double.Parse("234.4")抛出异常.

在我被要求使用句号而不是逗号之前,我已经写了很多代码,所以我更愿意在某种程度上改变我在全球范围内的CultureInfo.

我可以在项目中设置一些设置吗?

我试过了:

        Application.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Run Code Online (Sandbox Code Playgroud)

他们有点工作.它们适用于应用程序的大部分内容,但驻留在TabControl选项卡中的所有控件仍然希望使用我的计算机Localized CultureInfo.

关于如何解决这个问题的任何想法?

c# currentculture

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

如何在部署dll之后在C#中获取安装目录

在dll(C#)中工作时是否有一些聪明的方法来检索安装路径,这将从另一个文件夹中的应用程序调用?

我正在为应用程序开发一个加载项.我的加载项是用C#编写的.将使用的应用程序是用C编写的,需要在评估期间编译一些东西,所以我有一个带有C++ dll的middlestep,用C#处理互操作业务,只显示C可以使用的外部干净的接口.

我部署的是一组.dll和一个.lib和.h用于C++部分(有时需要静态绑定).

在尝试设置并从C#dll打印出当前目录信息时:

        Console.WriteLine(Directory.GetCurrentDirectory());
Run Code Online (Sandbox Code Playgroud)

要么:

        Console.WriteLine(System.Environment.CurrentDirectory);
Run Code Online (Sandbox Code Playgroud)

我得到了可执行文件路径.

那么......再一次,我如何获得我的dll的安装路径?

编辑:他们都工作了!谢谢你的快速回复!

c# deployment interop

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

用于Windows窗体的多个滑块轨迹栏

有没有人知道如何在WinForms中创建带有多个滑块的轨迹栏?我想标记一个范围.此外,是否可以垂直偏移滑块?我的目标是在轨道栏上方放置两个滑块,在轨道栏下方放置两个滑块.

     v-----------------v
________________________________________
                                ^------^
Run Code Online (Sandbox Code Playgroud)

c# winforms

7
推荐指数
1
解决办法
7692
查看次数

查找与C++ dll中的方法一起使用的参数

好的,所以我可以使用dumpbin.exe/exports library.dll来查找dll中的所有方法.

...但是我如何找出传递给他们的参数?当然没有头文件.

c++ dll signature name-mangling dumpbin

7
推荐指数
1
解决办法
6007
查看次数