Если я ссылаюсь на класс internal
из представления MVC, AssemblyBuilder
жалуется, что не может получить доступ к классу (что имеет смысл) здесь:
System.Web.Compilation.AssemblyBuilder.Compile()
Я пыталсядобавление InternalsVisibleTo
атрибутов для:
System
System.Web
System.Core
но я могу 'заставить его работать.Возможно ли это как-то?
Демо:
internal static class InternalClass
{
public static string Foo = "bar";
}
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
<%: InternalClass.Foo %>
Трассировка стека:
Compiler Error Message: CS0122: 'InternalClass' is inaccessible due to its protection level
at System.Web.Compilation.AssemblyBuilder.Compile()
at System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)
at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound)
at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp)
Редактировать: Пожалуйста, донаНе предлагайте альтернативных способов сделать это, это не то, о чем я спрашиваю.
Спасибо!