Can I make an ASP.NET Core controller internal?

后端 未结 2 1641
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-04 22:03

ASP.NET (and Core) controllers need to be public.

Problem is I have a controller which depends (in its constructor) on something internal.

2条回答
  •  萌比男神i
    2021-01-04 22:36

    Sou you have this (it always helps to include a MCVE in your question):

    internal class FooDependency
    {
    
    }
    
    public class FooController
    {
        public FooController(FooDependency dependency)
        {
            // ...
        }
    }
    

    And you can't make FooDependency public, but you need FooController to be public?

    Then you need to apply a public interface to the internal dependencies:

    public interface IFooDependency
    {
    
    }
    
    internal class FooDependency : IFooDependency
    {
    
    }
    
    public class FooController
    {
        public FooController(IFooDependency dependency)
        {
            // ...
        }
    }
    

提交回复
热议问题