如何获得解决方案项目中的所有类型?

巴特洛玛

我有一个解决方案和多个.net核心项目。

  • 项目(解决方案)
    • WebApi
    • 商业
    • 数据

WebApi专案参考Business,但并未参考Data专案。所以我想在实现的解决方案中获取所有类型IMyInterface所有项目都有实现的类IMyInterface我想找到所有的人。

我在WebApi项目中调用以下代码:

        var m = AppDomain.CurrentDomain.GetAssemblies()
            .SelectMany(name => name.GetTypes())
            .Where(type => typeof(IMyInterface).IsAssignableFrom(type))
            .ToList();

但找不到类型。

我如何找到?

法哈德·扎马尼(Farhad Zamani)

您应该获得所有这样的组装项目

public Assembly[] GetAssemblies()
{
      var dataAssembly = typeof(AnClassInDataLayer).Assembly;
      var businessAssembly = typeof(ACLassInBusinessLayer).Assembly;
      var webApiAssembly = typeof(Startup).Assembly;
      return new Assembly[] { businessAssembly , dataAssembly, webApiAssembly  };
}

然后

var m = GetAssemblies()
        .SelectMany(name => name.GetTypes())// or .SelectMany(a => a.ExportedTypes)
        .Where(type => typeof(IMyInterface).IsAssignableFrom(type))
        .ToList();

更新资料

在.Net Core中,如果WebApi项目引用的business图层和Business图层引用的是Data图层,则在WebApi图层中可以访问Data图层

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用CMake获得所有项目的VS解决方案以及单个项目的解决方案

如何从解决方案中的所有项目中卸载* a *软件包

如何在MSVC 2015解决方案中的所有项目中添加include / lib目录?

如何获得拓扑排序的所有解决方案

CPLEX如何以相同的成本获得所有不同的最佳解决方案

SonarQube / SonarLint / Visual Studio:在解决方案中的所有项目中使用一个规则集

Roslyn获取所有解决方案项目参考

获取解决方案中的所有启动项目

如何使用dotnet sln将所有项目添加到单个解决方案中?

如何在C#项目(解决方案)中找到所有硬编码值?

如何自动将解决方案中的所有项目设置为相同版本?

如何使一个递归解决方案返回所有可能的解决方案?

如何在解决方案中运行所有测试

在解决方案的多个项目中引用共享项目

在Xamarin解决方案中引用.Net Standard项目时,该项目中的所有代码是否都会编译到应用程序中

如何获取标记为Tag1 AND Tag2 AND ...的所有商品,以获得3桌标签解决方案

如何使我的解决方案中的所有项目在共享 assemblyVersion 上具有相同的产品版本?

在相同解决方案的其他项目中拥有模型

如何将Visual Studio 2015中的现有解决方案连接到Visual Studio Team Services项目中的现有项目

在同一解决方案中引用项目中的Nuget包所需的解决方案

如何在同一解决方案中使用多个项目中的NLog

如何在同一解决方案中的多个项目中使用 C# 类

如何在一处更改解决方案中所有项目的 C# 语言版本?

如何在不加载所有项目的情况下打开Visual Studio解决方案?

如何将解决方案文件中的所有项目更改为 C++17 MSVC?

单独项目中的MVC解决方案中的Web API

在vsix项目中访问当前打开的解决方案

如何修改解决方案/项目对象?

找到所有解决方案后,如何对解决方案进行评分并选择一种