Я использую Orchard для создания моего сайта и хочу добавить различные элементы для производственной среды и протестировать среду в Темы. Я попытался использовать класс C# singleton в классе Orchard Themes, чтобы получить, если это производственная среда. Затем используйте класс singleton в файле cshtml в Themes. Код может быть скомпилирован. Но во время выполнения он будет генерировать исключение, говорящее: имя «Темы» не существует в текущем контексте. Я должен добавить пространство имен «Темы» перед добавленным классом. В противном случае он не пройдет компиляцию.Как использовать класс C# singleton в Orchard Themes
Подробнее: Я добавил в файл темmes.csproj файл singleton class: EnvironmentDev.cs. Он содержит статический метод GetInstance и свойство IsProd. В Themes.csproj файле, он показывает:
<ItemGroup>
<Compile Include="EnvironmentDev.cs" />
</ItemGroup>
В Document.cshtml файл темы, я добавил следующий код:
@{
if (Themes.EnvironmentDev.GetInstance().IsProd) {
// Add production element
}
else {
// Add test site element
}
}
Подробное сообщение об ошибке: Описание: Произошла ошибка во время компиляции ресурса, необходимого для обслуживания этого запроса. Ознакомьтесь с приведенными ниже конкретными данными об ошибках и соответствующим образом измените исходный код.
Компилятор Сообщение об ошибке: CS0103: Имя «Темы» не существует в текущем контексте
Источник ошибки:
Line 46: @Display(Model.Head)
Line 47: @{
Line 48: if (Themes.EnvironmentDev.GetInstance().IsProd) {
Line 49: <script src="https://XXXX.js"></script> //using XXXX instead of real link
Line 50: }
Любые предложения будут оценены.
Спасибо, это полезно! – JinghuiZhang