いいえ、LocalAssemblyを強制することはできません。
アセンブリを参照して、そのようにアクティビティを使用することができます。または、.xamlファイルをロードしている場合は、XamlXmlReaderを使用してLocalAssemblyを指定できます。
最新バージョンのMicrosoft.Activities.ExtensionsにXamlHelperというクラスを追加しました。これは、これを実行しますが、その仕組みは次のとおりです。
/// <summary>
/// Loads a XAML or XAMLX file
/// </summary>
/// <param name="xamlFile">
/// The xaml file.
/// </param>
/// <param name="localAssembly">
/// The local assembly.
/// </param>
/// <returns>
/// The activity or root activity of a WorkflowService
/// </returns>
public static Activity Load(string xamlFile, Assembly localAssembly)
{
Contract.Requires(localAssembly != null);
if (localAssembly == null)
{
throw new ArgumentNullException("localAssembly");
}
var readerSettings = new XamlXmlReaderSettings
{
LocalAssembly = localAssembly,
AllowProtectedMembersOnRoot = true
};
var xamlType = GetXamlType(xamlFile);
switch (xamlType)
{
case WorkflowXamlFileType.Activity:
using (var reader = new XamlXmlReader(xamlFile, readerSettings))
{
return ActivityXamlServices.Load(reader);
}
case WorkflowXamlFileType.WorkflowService:
using (var reader = new XamlXmlReader(xamlFile, readerSettings))
{
return ((WorkflowService)XamlServices.Load(reader)).GetWorkflowRoot();
}
default:
throw new ArgumentException("Invalid file extension on xamlFile");
}
}