首页 > 解决方案 > 自定义 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”中

感谢您的帮助。

标签: c#wpfadaptive-cards

解决方案


显示该消息是因为 Microsoft.MarkedNet 和 AdaptiveCards 都包含具有完全相同的命名空间和类型名称的相同类型。您可以像这样 (*) 在项目设置中为 AdaptiveCards 或 Microsoft.MarkedNet 指定别名

在此处输入图像描述

然后通过定义一个 using 来使用带有别名前缀的完全限定名称

using Marked = myAlias::Microsoft.MarkedNet.Marked;

或直接使用完全限定的类型名称

myAlias::Microsoft.MarkedNet.Marked marked = new myAlias::Microsoft.MarkedNet.Marked();

(*) 如果直接引用程序集,请单击程序集引用


推荐阅读