小编Bri*_*hle的帖子

在.NET中创建DynamicType,实现接口但使用基类中的成员实现

我试图生成一个实现接口的动态类,但其中一个或多个成员已存在于基础中.我在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 cil

12
推荐指数
2
解决办法
2019
查看次数

仅用于内容文件的 Nuget 包

我正在尝试创建一个 .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)

.net c# nuget .net-standard

9
推荐指数
1
解决办法
5722
查看次数

标签 统计

.net ×2

.net-standard ×1

c# ×1

cil ×1

nuget ×1