【问题标题】:How can I manage a project`s asemblies in .NET Core?如何在 .NET Core 中管理项目的程序集?
【发布时间】:2020-04-19 12:34:25
【问题描述】:

如何在 .NET Core 中管理项目的程序集?

我借助 VS Code 中的 dotnet new webapi 命令创建了一个 WebAPI 项目。

现在我想知道如何管理项目中的程序集。这意味着我希望能够检查项目中每种类型属于哪个程序集。我想更改每种类型所属的程序集。我希望能够创建一个新程序集并将项目类型添加到其中。我该怎么做?

我相信有一个点可以进行项目程序集管理。但是我没找到。

更新

在 cmets 之后,我决定提供一种需要管理程序集的案例。

我正在学习 AutoMapper。在this 教程中有以下示例:

// Scan for all profiles in an assembly
// ... using instance approach:
var config = new MapperConfiguration(cfg => {
    cfg.AddMaps(myAssembly);
});
var configuration = new MapperConfiguration(cfg => cfg.AddMaps(myAssembly));

// Can also use assembly names:
var configuration = new MapperConfiguration(cfg =>
    cfg.AddMaps(new [] {
        "Foo.UI",
        "Foo.Core"
    });
);

// Or marker types for assemblies:
var configuration = new MapperConfiguration(cfg =>
    cfg.AddMaps(new [] {
        typeof(HomeController),
        typeof(Entity)
    });
);

在这个例子中,假设我可以很容易地检查一个类型所属的程序集的名称。而且从这​​个例子中我可以看出,可以在同一个项目中为不同类型使用不同的程序集(因为 HomeController 和 Entity 类在同一个项目中,但在不同的程序集中)。

注意

我对人们在 SO 上的行为感到非常困惑。如果之前在 cmets 部分没有要求提供详细信息,为什么我没有为我的问题提供详细信息而获得两票接近的投票?恕我直言,这非常粗鲁,没有任何理由。

【问题讨论】:

  • 我希望能够检查项目中的每个文件属于哪个程序集:项目中的每个文件是组装。因此我不明白你的问题。你能详细说明你到底想要完成什么吗?
  • 一个编译项目 == 该项目的一个程序集。其他一切要么是框架的东西,要么是来自 nuget 包的引用项目或程序集。
  • 您的问题是什么,这感觉就像 xyz 问题,或者您正在根据 .NET 世界之外的其他语言得出一些结论?
  • 有奇怪的矛盾 cmets。 Christian Gollhardt 的评论指出每个文件是一个单独的程序集,而 Optional Option 的评论指出整个项目只是一个程序集。这是否意味着可以随心所欲地手动配置和管理项目中的程序集?
  • @kuskmen,在我添加了 UPDATE 部分后,你觉得它像 xyz 问题吗?谢谢。

标签: c# .net-core visual-studio-code crud assemblies


【解决方案1】:

我认为您对 File 的含义实际上是一种类型。

你可以这样获取类型:

var type = typeof(HomeController);

并且以这种方式组装类型:

var assembly = Assembly.GetAssembly(type);

总之:

var type = typeof(HomeController);
var assembly = Assembly.GetAssembly(type);

更多信息请联系provided here。

【讨论】:

  • 那么,这是否意味着每次我想知道文件属于哪个程序集时,我都应该运行一些类似于您在上面提供的代码但针对我自己的类型的代码?
  • @qqqqqqq 不,在 .net 世界中,每个源文件都“附加”到一个项目。由于程序集和项目在当前上下文中可以互换使用,这意味着通过简单的观察,您可以推断出它属于哪个文件。
  • @kuskmen,这是否意味着大多数情况下的程序集管理与项目管理相同?
  • @qqqqqq 大部分是的
  • @kuskmen,恕我直言,如果您将其作为答案发布,将对其他人有用。谢谢。
猜你喜欢
  • 2011-06-20
  • 2017-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-09
  • 1970-01-01
  • 2019-11-25
相关资源
最近更新 更多