本文整理汇总了C#中Microsoft.CodeAnalysis.SyntaxTree.GetTextAsync方法的典型用法代码示例。如果您正苦于以下问题:C# SyntaxTree.GetTextAsync方法的具体用法?C# SyntaxTree.GetTextAsync怎么用?C# SyntaxTree.GetTextAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.CodeAnalysis.SyntaxTree
的用法示例。
在下文中一共展示了SyntaxTree.GetTextAsync方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WriteDbContext
private async Task WriteDbContext(NewDbContextTemplateModel dbContextTemplateModel,
SyntaxTree newDbContextTree)
{
//ToDo: What's the best place to write the DbContext?
var appBasePath = _environment.ApplicationBasePath;
var outputPath = Path.Combine(
appBasePath,
"Models",
dbContextTemplateModel.DbContextTypeName + ".cs");
if (File.Exists(outputPath))
{
// Odd case, a file exists with the same name as the DbContextTypeName but perhaps
// the type defined in that file is different, what should we do in this case?
// How likely is the above scenario?
// Perhaps we can enumerate files with prefix and generate a safe name? For now, just throw.
throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture,
"There was an error creating a DbContext, the file {0} already exists",
outputPath));
}
var sourceText = await newDbContextTree.GetTextAsync();
Directory.CreateDirectory(Path.GetDirectoryName(outputPath));
using (var fileStream = new FileStream(outputPath, FileMode.CreateNew, FileAccess.Write))
{
using (var streamWriter = new StreamWriter(stream: fileStream, encoding: Encoding.UTF8))
{
sourceText.Write(streamWriter);
}
}
_logger.LogMessage("Added DbContext : " + outputPath.Substring(appBasePath.Length));
}