0

Je dois exécuter le flux de travail XAML, mais ce flux de travail conserve les références aux autres XAML. Quand je suis en train d'exécuter le flux de travail parExécution du flux de travaux avec l'activité XAML imbriquée

ActivityXamlServicesSettings settings = new ActivityXamlServicesSettings 
{ 
    CompileExpressions = true 
}; 
return ActivityXamlServices.Load(stream, settings); 

J'obtiens l'erreur suivante de méthode Load:

CacheMetadata pour l'activité « MyNamespace.MyMainActivity » jeté « System.Xaml.XamlObjectWriterException: Impossible de créer inconnu tapez '{clr-namespace: MyNamespace} MyNestedActivity'.

Comment puis-je le résoudre?

Répondre

0

Je pense que vous devez convertir votre fichier xamls interne en fichier dll (assembly). Et chargez le fichier d'assemblage en lisant/chargeant le xaml parent.

System.Xaml.XamlXmlReaderSettings xmlsettings = new System.Xaml.XamlXmlReaderSettings(); 
     if(dllFile != null) { 
      Assembly wfAssembly = Assembly.Load(dllFile); 
      xmlsettings.LocalAssembly = wfAssembly; 
     } 

     System.IO.StringReader stringReader = new System.IO.StringReader(xaml); 
     XamlXmlReader reader = new XamlXmlReader(stringReader, xmlsettings); 
     ActivityXamlServicesSettings settings = new ActivityXamlServicesSettings { CompileExpressions = true }; 
     Activity activity = System.Activities.XamlIntegration.ActivityXamlServices.Load(reader, settings); 

espérons que cela aide.