gpt4 book ai didi

visual-studio - 在工作流设计器中从 VB 切换到 C#

转载 作者:行者123 更新时间:2023-12-04 05:49:41 25 4
gpt4 key购买 nike

我正在 Visual Studio 11 Beta 中创建一个事件库(尽管我已经在 VS2010 中重复了我的所有步骤并得到了相同的结果),目标是 .NET 4.0 框架。

当我开始通过工作流设计器输入参数时,我注意到默认值框中的“输入 VB 表达式”消息。我不确定如何将语言上下文从 VB 更改为 C#。

为了创建项目,我遵循了以下步骤:

  • 转至 文件 > 新品 并选择 项目...
  • 已安装 > 模板在“新建项目”对话框窗口的部分,选择 Visual C# > 工作流程 > 事件库
  • 像往常一样为项目命名,然后单击 好的

  • 基本上就是这样。然后我注意到默认的 Activity1.xaml文件在默认值字段中需要 VB。我删除了它,然后按照以下步骤创建一个新事件:
  • 右键单击项目并选择 添加 > 新品...
  • 在“添加新项目”对话框窗口中,导航到 已安装 > Visual C# 项目 > 工作流程 > 事件
  • 为事件命名并单击确定

  • 这是相同的结果,默认值字段需要 VB 表达式。

    当我查看 XAML 代码时,我可以清楚地看到 Microsoft.VisualBasic.Activities列出的命名空间和 VisualBasic.Settings元素,但我不知道该怎么做才能改变它;每次我尝试时,我最终都会把事情搞砸。这是正在生成的 XAML 代码:
    <Activity mc:Ignorable="sads sap" x:Class="THINKImport.CustomerAddOrderAdd"
    xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities"
    xmlns:local="clr-namespace:THINKImport.THINKWebReference"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:mva="clr-namespace:Microsoft.VisualBasic.Activities;assembly=System.Activities"
    xmlns:s="clr-namespace:System;assembly=System.Core"
    xmlns:s1="clr-namespace:System;assembly=System"
    xmlns:s2="clr-namespace:System;assembly=System.ServiceModel"
    xmlns:s3="clr-namespace:System;assembly=mscorlib"
    xmlns:sads="http://schemas.microsoft.com/netfx/2010/xaml/activities/debugger"
    xmlns:sap="http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation"
    xmlns:t="clr-namespace:THINKImport"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <x:Members>
    <x:Property Name="user_login_data" Type="InArgument(local:user_login_data)" />
    <!--Removed the other properties for brevity-->
    </x:Members>
    <sap:VirtualizedContainerService.HintSize>440,440</sap:VirtualizedContainerService.HintSize>
    <mva:VisualBasic.Settings>Assembly references and imported namespaces for internal implementation</mva:VisualBasic.Settings>
    </Activity>

    最佳答案

    我能够弄清楚这个问题。

    不过,首先,我发现了根本原因 here .简而言之,它表示即使程序是在 C# 中,也必须在表达式编辑器中使用 VB.NET。

    因此,我对此感到有些沮丧,但我决定再次破解 XAML 代码,因为在学习 WF 教程的过程中,我在设计器中肯定有一项事件可以接受 C# 中的表达式。我打开了那个项目并浏览了 XAML 代码。

    就在那时,我注意到了这一行:

    <sap2010:ExpressionActivityEditor.ExpressionActivityEditor>C#</sap2010:ExpressionActivityEditor.ExpressionActivityEditor>

    我搜索了 MSDN 库,找到了 documentation for the ExpressionActivityEditor class .据我所知,这是 .NET 4.5 的新功能。在我的特殊情况下,我没有任何理由不能在我的项目中定位 .NET 4.5,所以我改变了它。解决方案重新打开后,所有表达式编辑器文本字段和框都会立即接受 C#。为了“重新开始”,我删除了我一直在处理的事件文件并创建了一个新的事件文件。如果有人感兴趣,这里是生成的 XAML 代码:
    <Activity mc:Ignorable="sap sap2010 sads" x:Class="THINKImport.CustomerAddOrderAdd"
    xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:sads="http://schemas.microsoft.com/netfx/2010/xaml/activities/debugger"
    xmlns:sap="http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation"
    xmlns:sap2010="http://schemas.microsoft.com/netfx/2010/xaml/activities/presentation"
    xmlns:sco="clr-namespace:System.Collections.ObjectModel;assembly=mscorlib"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:THINKWebReference="clr-namespace:THINKImport.THINKWebReference">
    <x:Members>
    <x:Property Name="user_login_data" Type="InArgument(THINKWebReference:user_login_data)">
    <x:Property.Attributes>
    <RequiredArgumentAttribute />
    </x:Property.Attributes>
    </x:Property>
    <x:Property Name="customer_data" Type="InArgument(THINKWebReference:customer_data)" />
    <!--Remainder of Properties removed for brevity-->
    </x:Members>
    <sap2010:ExpressionActivityEditor.ExpressionActivityEditor>C#</sap2010:ExpressionActivityEditor.ExpressionActivityEditor>
    <TextExpression.NamespacesForImplementation>
    <sco:Collection x:TypeArguments="x:String">
    <x:String>System</x:String>
    <x:String>System.Collections.Generic</x:String>
    <x:String>System.Data</x:String>
    <x:String>System.Linq</x:String>
    <x:String>System.Text</x:String>
    </sco:Collection>
    </TextExpression.NamespacesForImplementation>
    <TextExpression.ReferencesForImplementation>
    <sco:Collection x:TypeArguments="AssemblyReference">
    <AssemblyReference>mscorlib</AssemblyReference>
    <AssemblyReference>System</AssemblyReference>
    <AssemblyReference>System.Core</AssemblyReference>
    <AssemblyReference>System.Data</AssemblyReference>
    <AssemblyReference>System.ServiceModel</AssemblyReference>
    <AssemblyReference>System.Xml</AssemblyReference>
    </sco:Collection>
    </TextExpression.ReferencesForImplementation>
    <sap2010:WorkflowViewState.IdRef>
    THINKImport.CustomerAddOrderAdd_1
    </sap2010:WorkflowViewState.IdRef>
    <sap2010:WorkflowViewState.ViewStateManager>
    <sap2010:ViewStateManager>
    <sap2010:ViewStateData Id="THINKImport.CustomerAddOrderAdd_1" sap:VirtualizedContainerService.HintSize="440,440" />
    </sap2010:ViewStateManager>
    </sap2010:WorkflowViewState.ViewStateManager>
    </Activity>

    所以,完全不同(对我来说,无论如何),但我现在可以使用 C#,所以我很高兴。

    关于visual-studio - 在工作流设计器中从 VB 切换到 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10836936/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com