小编Dem*_*tom的帖子

将nuget包的源添加到解决方案中

我有一个项目,它从私有NuGet提要中使用NuGet包.我还在一个单独的项目/解决方案中有该包的源代码.当我在项目上工作时,我希望能够暂时将所提到的包源代码添加到解决方案中,这样我就可以同时处理项目和nuget包中的更改.

在Visual Studio 2015中,使用dotnet core和project.json/global.json,我可以将NuGet包添加到项目中,然后修改global.json以包含磁盘中的源.

global.json:
{
   "projects" : [ "src", "../<path_to_external_source>/src" ]
}
Run Code Online (Sandbox Code Playgroud)

这会暂时改变对磁盘上项目的引用.在推送到构建服务器之前,我只需从global.json中删除一行并从解决方案中删除项目.

在Visual Studio 2017和基于csproj的dotnet核心中我似乎无法获得该功能.我必须删除nuget包,通过"添加/现有项目"手动添加源代码到解决方案,然后手动添加引用而不是删除NuGet引用.然后在推送构建服务器之前反转所有这些.

当解决方案有几个项目消耗NuGet包时,这尤其成问题,我需要对每个项目进行处理.

有没有办法在VS17中重现global.json的功能?

c# nuget-package .net-core visual-studio-2017

6
推荐指数
0
解决办法
624
查看次数

基本接口的通用类型

我的班级结构(简化)

interface Foo<T> { }
abstract class Bar1 : Foo<SomeClass> { }
abstract class Bar2 : Foo<SomeOtherClass> { }
class FinalClass1 : Bar1 { }
class FinalClass2 : Bar2 { }
Run Code Online (Sandbox Code Playgroud)

现在,只有类型FinalClass1和FinalClass2,我需要从Foo接口获取它们各自的T类型 - FinalClass1的SomeClass和FinalClass2的SomeOtherClass.抽象类可以实现更通用的接口,但始终只有一个Foo.

  1. 如何使用反射来实现这一目标?

  2. 无论T是什么类型,我怎样才能确保类型实现Foo?就像是

bool bIsFoo = typeof(SomeType).IsAssignableFrom(Foo<>)

以上不起作用.

c# generics reflection .net-core

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