小编ANe*_*own的帖子

检查IEnumerable <object>是否为IEnumerable <int>

IEnumerable<object>输入变量.

IEnumerable<object> items= new object[] { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)

什么是检查它的最佳方法IEnumerable<int>

我试过了

typeof(IEnumerable<int>).IsAssignableFrom(items.GetType())
typeof(IEnumerable<int>).IsInstanceOfType(items)
items is IEnumerable<int>
Run Code Online (Sandbox Code Playgroud)

但是,Re-Sharper抱怨他们.

就我而言,在大多数情况IEnumerable<object> items是类型的.我希望在类型和其他类型的东西时执行某些操作.IEnumerable<int>IEnumerable<int>

c# linq

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

仿制药可以做什么,你不能用组合做什么?

给出一个类:

public class TestMain
{

}
Run Code Online (Sandbox Code Playgroud)

还有两个类通过泛型来接受这个类的实例:

public class Test1<T> where T : TestMain
{
    public Test1(T test)
    {

    }   
}   
Run Code Online (Sandbox Code Playgroud)

一个没有:

public class Test2
{
    public Test2(TestMain test)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

你为什么选择一个而不是另一个?

c#

5
推荐指数
1
解决办法
129
查看次数

如何将当前应用程序域的程序集动态加载到 C# 项目?

我正在尝试将第三方assemblies 动态加载到项目中并用于reflection创建其类型的实例。

我用了:

Assembly.LoadFrom("Assembly1.dll")
Assembly.LoadFrom("Assembly2.dll")
Assembly.LoadFrom("Assembly3.dll") 
Run Code Online (Sandbox Code Playgroud)

另外,试过:

AppDomain.CurrentDomain.Load("Assembly1.dll")
AppDomain.CurrentDomain.Load("Assembly2.dll")
AppDomain.CurrentDomain.Load("Assembly3.dll") 
Run Code Online (Sandbox Code Playgroud)

但是,The method is not implemented当我尝试创建其中一种类型的实例时,我不断收到异常,如下所示:

Assembly.LoadFrom("Assembly1.dll")
Assembly.LoadFrom("Assembly2.dll")
Assembly assembly=  Assembly.LoadFrom("Assembly3.dll")
Type type=assembly.GetType("Assembly3.Class1")
object instance=Activator.CreateInstance(type); //throws exception at this point
Run Code Online (Sandbox Code Playgroud)

但是,如果我直接在项目中add referenceAssembly1、Assembly2 和Assembly3执行以下操作:

Assembly3.Class1 testClass=new Assembly3.Class1();
Run Code Online (Sandbox Code Playgroud)

我也不例外

我只是想知道我做错了什么?如何将程序集动态加载到项目中。我猜,因为创建Class1实例依赖于另一个程序集Assembly1Assembly2,所以它的失败。那么,如何将所有依赖程序集动态加载到appdomain/loadcontext.

非常感谢您的回答。

.net c# .net-assembly

5
推荐指数
1
解决办法
5732
查看次数

如何将树过滤到共同父级

我有一棵树(带有复选框),如下所示。

A
    A1
        A11
            A111(已选)
            A112(已选)
            A113
        B11
            B111(已选)
            B112

我想过滤它以返回如下,因为A1是所选节点的公共父级

A1
   A11
       A111
       A112
    B11
       B111

树是一个具有根节点及其子节点的层次结构:

public class Node
{
  public int Id;
  public string Name;
  public Node Parent;
  public List<Node> Children;
}
Run Code Online (Sandbox Code Playgroud)

基本上,这是 UI 中的树结构。根据用户选择的内容(复选框),我必须找到公共父级并显示结果树。

c# algorithm

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

angular 2 何时在组件上调用 onDestroy?

我无法弄清楚 angular 何时决定调用onDestory事件?

当我使用*ngIF指令切换组件时,不会调用 onDestory 并且组件的状态被维护,就好像它使用组件的相同实例一样?

任何人都可以详细说明 angular(2) 何时破坏组件?以及如何在切换时实现更新的组件实例*ngIf

javascript angular

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

如何使用webpack proxy devserver pathRewrite?

我目前正在努力重写 api 服务器的代理路径。在我的设置中,我所做的是 api 请求,我将它委托给代理服务器,并且仅使用 js/html/css webpack-dev-server

以下是我正在使用的:

devServer: {
    inline: true,
    port: 8080,
    historyApiFallback: true,
    publicPath: 'http://localhost:8080/dist/',
    disableHostCheck: true,
    proxy: {
        '/api': {
        target: 'http://localhost:3000',
        pathRewrite: {'???' : ''} //Need to append http://localhost:3000/MySite1/api
  }
}
Run Code Online (Sandbox Code Playgroud)

那么,如何在代理到 localhost:3000 之前将 /MySite1 附加到 api 请求?

例如,如果请求是: http://localhost:8080/api,它应该重新写入http://localhost:3000/MySite1/api

另外,如果请求是: http://localhost:8080,它应该重新写入http://localhost:3000/MySite1

javascript webpack webpack-dev-server angular webpack-4

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