title: Detecting the language (C# or VB) of a host Workflow
body: <p>I'm developing a custom activity which internally (in my activity designer) has a instruction using the code activity <code>VisualBasicValue&lt;string[]&gt;</code> which I use to represent an array of strings, e.g: <code>{ &quot;a&quot;, &quot;b&quot;, &quot;c&quot; }</code></p>
  <p>However, in workflow projects written in C#, we need use <code>CSharpValue&lt;string[]&gt;</code> instead of <code>VisualBasicValue&lt;string[]&gt;</code>, and write the expression as: <code>new [] { &quot;a&quot;, &quot;b&quot;, &quot;c&quot; }</code></p>
  <p>How can I determine which language is set in my host workflow so I can choose the right code activity?</p>
  <p>I read that C# projects has the attribute/node
  <em><strong>sap2010:ExpressionActivityEditor.ExpressionActivityEditor=&quot;C#&quot;</strong></em> in the workflow but I don't know how to get this info from an activity design, I don't know if this is the best approach either.</p>
  <p>Summing up, what I'm looking for is something that allow me to do this kind of logic:</p>
  <pre><code>CodeActivity&lt;string[]&gt; code = null;
  
  if (__some_way_to_know_if_is_CSharp__)
  {
      code = new CSharpValue&lt;string[]&gt; {
          ExpressionText = &quot;new [] { 'a', 'b', 'c' }&quot;
      }
  }
  else
  {
      code = new VisualBasicValue&lt;string[]&gt; {
          ExpressionText = &quot;{ 'a', 'b', 'c' }&quot;
      }
  }
  
  ModelItem.Properties[&quot;Items&quot;].SetValue(new InArgument&lt;IEnumerable&lt;string&gt;&gt;(code))
  </code></pre>
  <p>Thank you!</p>