如何使用nuget包中定义的扩展
本文关键字:扩展 定义 包中 何使用 nuget | 更新日期: 2023-09-27 18:26:10
我似乎也不知道在文件顶部使用什么using
语句。
nuget包在这里:https://www.nuget.org/packages/csharp-extensions我试图从中使用的方法是Object#发送
所以,我打电话给
<#objectInstanec>.Send("SomeMethod")
但编译器表示,该方法不是在类型对象上定义的Send
的定义如下:https://github.com/NullVoxPopuli/csharp-extensions/blob/master/Extensions/Methods.cs#L26
我尝试过各种使用语句:
using csharp_extensions.Extensions.Methods;
using csharp_extensions.Extensions;
using csharp_extensions
似乎没有工作(csharp_extensions
不存在)
更新-如何安装程序包
我的项目.json:
{
"dependencies": {
"System.Reflection": "4.1.0-beta-*",
"Microsoft.Extensions.PlatformAbstractions": "(1.0.0-rc1-final,]",
"xunit": "2.1.0-*",
"xunit.runner.dnx": "2.1.0-*",
"csharp-extensions": "1.0.1"
},
"commands": {
"test": "xunit.runner.dnx"
},
"frameworks": {
"dnxcore50": {
"_": "this is the recommended windows runtime",
"dependencies": {
"System.Console": "4.0.0-beta-*",
"System.Reflection": "4.1.0-beta-*",
"System.Reflection.TypeExtensions": "4.1.0-beta-*",
"System.Runtime.Extensions": "(4.0,]",
"System.IO": "(4.0,]",
"csharp-extensions": "1.0.1"
}
}
}
}
然后我通过安装依赖项
dnu restore
您的NuGet包在我看来不正确。您的程序集位于bin''Debug''dnxcore50中。我会看看NuGet文档,或者下载一个有效的现有NuGet包。
NuGetv2风格的包包含lib目录中的程序集。lib目录中的目录以目标框架命名。看看Microsoft.Extensions.PlatformAbstractions NuGet包,两个目录中都有一个程序集:
lib'net451
lib'dotnet5.4
因此,对于您的NuGet包,我认为程序集没有被引用,因为它们不在正确的目录中。dotnet5.4目录具有可与dnxcore目标框架一起使用的程序集。
此外,project.json应该是这样的(没有system.reflection,因为它是多余的)
{
"dependencies": {
"Microsoft.Extensions.PlatformAbstractions": "(1.0.0-rc1-final,]",
"System.Reflection": "4.1.0-beta-*",
"xunit": "2.1.0-*",
"xunit.runner.dnx": "2.1.0-*"
},
"commands": {
"run": "csharp_extensions",
"test": "xunit.runner.dnx"
},
"frameworks": {
"dnxcore50": {
"_": "this is the recommended windows runtime",
"dependencies": {
"System.Console": "4.0.0-beta-*",
"System.Reflection.TypeExtensions": "4.1.0-beta-*",
"System.Runtime.Extensions": "(4.0,]",
"System.Dynamic.Runtime": "(4.0.0,]",
"Microsoft.CSharp": "(4.0.0,]",
"System.IO": "(4.0,]"
}
}
}
}