我试图生成一个实现接口的动态类,但其中一个或多个成员已存在于基础中.我在C#中编译了以下代码,并在反射器中检查它以查看C#编译器的功能.
class BaseClass
{
public string Bob
{
get { return "Bob"; }
}
}
interface IStuff
{
string Bob { get; }
}
class SubClass : BaseClass, IStuff
{
}
Run Code Online (Sandbox Code Playgroud)
Reflector没有在SubClass中显示任何实现.
.class private auto ansi beforefieldinit SubClass
extends Enterprise.Services.OperationalActions.Business.Filters.BaseClass
implements Enterprise.Services.OperationalActions.Business.Filters.IStuff
{
}
Run Code Online (Sandbox Code Playgroud)
但是如果我没有明确地发出成员,则TypeBuilder.CreateType()抛出一个InvalidOperationException声明该成员没有实现.所以我的问题是,我如何告诉TypeBuilder接口成员应该从基础实现它的实现?
我正在尝试创建一个 .NET 标准 nuget 内容文件包(没有托管程序集),供 .NET Framework 程序集使用。我的目标是将此文件文件夹复制到消费程序集的 bin 文件夹中。
这个问题类似于Add native files from NuGet package to project output directory(并使用这个 nuget 包http://www.nuget.org/packages/Baseclass.Contrib.Nuget.Output/),但我需要我的 nuget 包.NET 标准
我已经在 contentfiles\any\any\myfiles 下的程序集中添加了文件,并将以下内容添加到 nuspec 文件的元数据部分:
<contentFiles>
<files include="any/any/myfiles/*" buildAction="None" copyToOutput="true" />
</contentFiles>
Run Code Online (Sandbox Code Playgroud)
当我尝试将其添加到 .NET 框架程序集时,出现错误
无法安装包“myPackage 1.0.0”。您正在尝试将此包安装到以“.NETFramework,Version=v4.6.2”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。有关更多信息,请联系软件包作者。
我还尝试将文件添加到项目的根目录,并在 nuspec 文件的元数据元素下方添加以下内容:
<files>
<file src="myfiles\**\*" target="myfiles" />
</files>
Run Code Online (Sandbox Code Playgroud)
完整的 nuspec 文件:
<?xml version="1.0"?>
<package>
<metadata>
<id>myPackage</id>
<version>1.0.0</version>
<title>myPackage</title>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>my files/description>
<releaseNotes></releaseNotes>
<tags></tags>
<contentFiles>
<files include="any/any/myfiles/*" buildAction="None" copyToOutput="true" />
</contentFiles>
</metadata>
<files>
<file …Run Code Online (Sandbox Code Playgroud)