Этот вопрос для интереса. Я работаю с сторонней библиотекой и наткнулся на следующую документацию в классе CMS.Security.Dummy
:
НЕ УДАЛЯЙТЕ ЭТОТ КЛАСС. Этот класс не позволяет компилятору удаление всего пространства имен в .NET 4.0.
Кто-нибудь знает, или кто-нибудь может предположить, почему .NET 4 сбросит пространство имен, если удаленный класс был удален?
Поскольку .NET 4 явно указан в комментарии к исходному коду, я предполагаю, что предыдущие версии С# демонстрируют поведение, которое не требует этого фиктивного класса. Это чисто умозрительное.
Снимок экрана
Декомпилированный исходный код
#region Assembly CMS.SettingsProvider.dll, v4.0.30319
// ...\solution\wwwroot\Bin\CMS.SettingsProvider.dll
#endregion
using System;
namespace CMS.Security
{
// Summary:
// DO NOT DELETE THIS CLASS - This class prevents the compiler from dropping
// entire namespace under .NET 4.0.
public class Dummy
{
// Summary:
// DO NOT DELETE THIS CLASS - This class prevents the compiler from dropping
// entire namespace under .NET 4.0.
public Dummy();
}
}