Как «переопределить» внутренний класс в C#?

Ключевое слово internal означает, что override блок кода (класс, метод и c# т. д.) является «общедоступным» для c-sharp сборки, в которой он находится, но c-sharp частным для любой другой function-overriding сборки.

Поскольку вы находитесь .cs-file в разных сборках, вы ничего visual-c# не можете сделать. Если бы function-overriding он не был внутренним, вы c#-language могли бы использовать ключевое override слово new в методе, который overrides вы переопределяете (чтобы internal-class скрыть исходную реализацию) при internal-class расширении класса.

Короче: вы function-overriding должны быть СОЛОМ.

Единственное, что c#.net я могу придумать, что вы c-sharp могли бы сделать, это написать .cs-file прокси-класс, где одно из overriding ваших частных полей - это override класс, который вы хотите visual-c# расширить, и вы реализуете c-sharp все его методы и проксируете internal-class их вызовы. таким образом c-sharp вы все еще можете настраивать c#.net вывод, но вам придется использовать overrides свой класс, и, учитывая, что c# он помечен как внутренний, я c# не уверен, что это возможно .cs-file без серьезного взлома.

using System;
...
using System.Web.Script.Services

namespace MyGreatCompany.ScriptServices 
{
    public class MyScriptHandlerFactory /* implement all the interfaces */
    {
        private ScriptHandlerFactory internalFactory;
        public MyScriptHandlerFactory()
        {
            internalFactory = new ScriptHandlerFactory();
        }
        ...
    }
}

Это c# может сделать то, что вы хотите internal-class сделать, возможным, но это c#.net будет некрасиво.

c#

overriding

internal-class

2022-01-26T02:41:27+00:00
Вопросы с похожей тематикой, как у вопроса:

Как «переопределить» внутренний класс в C#?