.net core Nuget包接口及其在独立类库中的实现

.net core Nuget包接口及其在独立类库中的实现,.net-core,nuget,.net Core,Nuget,我有一个关于NuGet软件包的问题 我可以有一个只有接口的类库,并且它的实现在单独的库中吗?此外,我是否可以将实现标记为内部而不是公共?我是否可以拥有一个仅具有接口的类库,并且它的实现位于单独的库中? 对。您可以有一个只有接口类的类库 并具有引用该接口库的其他类库并实现它 此外,我可以将实现标记为内部而不是公共吗? 因为接口方法是公共的,所以当您的类实现接口方法时,您需要将其标记为公共的,所以答案是否定的 但是您可以这样做,用户只能通过定义接口的实例类型来调用接口方法 using Syste

我有一个关于NuGet软件包的问题


我可以有一个只有接口的类库,并且它的实现在单独的库中吗?此外,我是否可以将实现标记为内部而不是公共?

我是否可以拥有一个仅具有接口的类库,并且它的实现位于单独的库中?

对。您可以有一个只有接口类的类库

并具有引用该接口库的其他类库并实现它

此外,我可以将实现标记为内部而不是公共吗?

因为接口方法是公共的,所以当您的类实现接口方法时,您需要将其标记为公共的,所以答案是否定的

但是您可以这样做,用户只能通过定义接口的实例类型来调用接口方法

using System;

namespace InterfaceLibrary
{
    public interface IInterface
    {
        public void Do();
    }
}

其实你可以自己试试。本地的类库与NuGetThank没有什么不同@MichaelMao@bankerbox我不知道你们到底想做什么,你们能解释一下吗?我只是想知道,若我必须做一个nuget包,接口和它的实现是否可以在不同的类库中拆分,内部部分呢?
using System;
using InterfaceLibrary;

namespace ClassLibrary
{
    public class Class : IInterface
    {
        void IInterface.Do()
        {
            Console.WriteLine("Do");
        }
    }
}
// This can find the Do method
IInterface class1 = new Class();
class1.Do();

// This can't find the Do method
Class class2 = new Class();
class2.Do();