2016-04-28 2 views
1

Я использую 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:   } 

Любые предложения будут оценены.

ответ

0

Я думаю, вам нужно создать специальный проект для вашей теме с помощью следующей команды

codegen theme MyTheme /CreateProject:true /IncludeInSolution:true 

в противном случае ваш код не будет найден. У меня была такая же проблема с файлом ресурсов.

См. Пункт Создание структуры темы в docs для получения дополнительной информации.

+1

Спасибо, это полезно! – JinghuiZhang