Я получаю несколько ошибок при составлении содержимого бритвы (не файл). Код такой: < /p>
Код: Выделить всё
var content = File.ReadAllText("RazorComponent.razor");
var assemblyName = "RazorComponent";
var assemblyPath = Path.GetDirectoryName(typeof(object).Assembly.Location)!;
var document = RazorSourceDocument.Create(content, assemblyName + ".razor");
var options = new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary);
var references = new MetadataReference[]
{
MetadataReference.CreateFromFile(Assembly.GetExecutingAssembly().Location),
MetadataReference.CreateFromFile(typeof(object).Assembly.Location),
MetadataReference.CreateFromFile(typeof(IComponent).Assembly.Location),
MetadataReference.CreateFromFile(typeof(RazorCompiledItemAttribute).Assembly.Location),
MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "mscorlib.dll")),
MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "System.dll")),
MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "System.Core.dll")),
MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "System.Runtime.dll"))
};
var engine = RazorProjectEngine.Create(
RazorConfiguration.Default,
RazorProjectFileSystem.Create("."),
builder =>
{
builder.ConfigureClass((doc, node) =>
{
node.BaseType = typeof(ComponentBase).FullName;
});
});
var codeDocument = engine.Process(source: document, fileKind: null, importSources: [], tagHelpers: []);
var csDocument = codeDocument.GetCSharpDocument();
var syntaxTree = CSharpSyntaxTree.ParseText(csDocument.GeneratedCode);
var compilation = CSharpCompilation.Create(assemblyName, [syntaxTree], references, options);
using var assemblyStrean = new MemoryStream();
var result = compilation.Emit(assemblyStrean);
Ошибка CS0115: 'template.executeasync ()': не подходящий метод. Текущий контекст
Ошибка CS0103: Имя «записать» не существует в текущем контексте
Проверка сгенерированного кода, я вижу, что сгенерированный класс называется шаблоном , унаследовать от ComponentBase и пытается переопределить метод, который не Existing, uneSync, unearync, unecistinc, unecistinc, unecistenc, unecistync, и пытается переопределить. Внутри этого, где он звонит, написать и writeliteral , чего, конечно, тоже не существует.
Чего мне не хватает?
Подробнее здесь: https://stackoverflow.com/questions/796 ... or-content
Мобильная версия