c# - 自定义 WPF TextBlock 渲染器 - 错误 CS0433
问题描述
我想为一个项目创建一个自定义 TextRenderer。当我尝试使用 MarkedNet.Marked 类时,我不断收到 CS0433 错误。我从微软如何在那里 Wpf TextRenderer 开始,但不知道如何阻止错误的发生。
private static TextBlock CreateControl(ScreenTextElement textElement, AdaptiveRenderContext context)
{
Marked marked = new Marked();
marked.Options.Renderer = new AdaptiveXamlMarkdownRenderer();
marked.Options.Mangle = false;
marked.Options.Sanitize = true;
string text = RendererUtilities.ApplyTextFunctions(textElement.Text, context.Lang);
string xaml = $"<TextBlock xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\">{marked.Parse(text)}</TextBlock>
}";
错误 CS0433 类型“标记”存在于“AdaptiveCards,版本=2.7.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35”和“Microsoft.MarkedNet,版本=1.0.13.0,文化=中性,PublicKeyToken=31bf3856ad364e35”中
感谢您的帮助。
解决方案
显示该消息是因为 Microsoft.MarkedNet 和 AdaptiveCards 都包含具有完全相同的命名空间和类型名称的相同类型。您可以像这样 (*) 在项目设置中为 AdaptiveCards 或 Microsoft.MarkedNet 指定别名
然后通过定义一个 using 来使用带有别名前缀的完全限定名称
using Marked = myAlias::Microsoft.MarkedNet.Marked;
或直接使用完全限定的类型名称
myAlias::Microsoft.MarkedNet.Marked marked = new myAlias::Microsoft.MarkedNet.Marked();
(*) 如果直接引用程序集,请单击程序集引用
推荐阅读
- javascript - 在句柄函数上反应钩子状态未定义
- business-objects - 在 WebI 报告中过滤高于 X% 组的行
- flutter - 如何在颤动中将自定义小部件传递给另一个自定义小部件?
- linux - 在 Linux (Ubuntu) 中使用 MI Box 进行 WIFI 调试。设备无法识别
- probabilistic-programming - Pyro Paramstore 的不同访问方法给出不同的结果
- vue.js - 带有 prop 数组的 Vue.js 无限循环
- html - 容器内的网格列
- python - 如何从.gitignore 中提取文件夹?
- r - 编译我的翻书 Xaringan 甲板时遇到问题
- powershell - ServiceNamePrincipal 到 nslookup