避免访问嵌套 Class 的构造函数

Avoid Access to Constructor of nested Class

这是我的问题的粗略代码示例:

class FooMaster
{
    private static FooChildBase GetFooChild(int number)
    {
        switch(number)
        {
            case 1:
                return new FooChild1();
            case 2:
                return new FooChild2();
            default:
                throw new NotImplementedException("...");    
        }
    }

    public static string GetFooChildText1Value(int number)
    {
        FooChildBase fooChild = GetFooChild(number);

        return (fooChild?.Text1) ?? throw new NullReferenceException("...");
    }

    ...

    class FooChild1 : FooChildBase
    {
        internal override string Text1 { get; } = "Test"

        public static void Test()
        {
            //Do something
        }
    }

    class FooChild2 : FooChildBase
    {
        internal override string Text1 { get; } = "Test"
    }
 
    abstract class FooChildBase
    {
        internal abstract string Text1 { get; }
    }
}

我想完成的事情:

你应该:

编辑:

类型 FooChild1 和 FooChild2 必须从外部知道 因为你需要能够直接调用个别 public 静态方法(我不想让只调用下一个方法的方法)

更新:

最后我创建了另一个 class-library 并将构造函数定义为内部构造函数。这样它只能在此程序集中访问。

建议的接口解决方案也可以工作,但我必须为每个 class.

创建一个单独的接口

感谢大家的快速回答!