2009-08-09 12 views
1

J'ai une zone de liste que je lie à une collection d'objets.La liaison de données dans XBAP génère une erreur de réflexion

Dans le code derrière, je reçois une liste des emplois et la lier aux éléments listbox source:

List<JobEntity> jobList = new List<JobEntity>(); 
Job j = new Job(); 
jobList = j.LoadJobs(pageSize, pageIndex); 
lbxJobs.ItemsSource = jobList; 

Dans le XAML, je tente alors et accéder à certaines des propriétés du travail.

<ListBox.ItemTemplate> 
     <DataTemplate> 
      <WrapPanel> 
       <TextBlock Text="{Binding Path=Title}" Margin="5 0" /> 
       <TextBlock Text="{Binding Path=HiringCompany}" Margin="5 0" /> 
      </WrapPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 

Cela fonctionne bien pour une application WPF normale, mais comme une application XBAP il renvoie une erreur qui dit fondamentalement, il ne peut pas obtenir la valeur car les autorisations de réflexion ont été rejetées.

System.Windows.Data Error: 16 : Cannot get 'HiringCompany' value (type 'String') from '' (type 'JobEntity'). BindingExpression:Path=HiringCompany; DataItem='JobEntity' (HashCode=64844482); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String') TargetInvocationException:'System.Reflection.TargetInvocationException: Property accessor 'HiringCompany' on object 'JobSearch.Classes.JobEntity' threw the following exception:'JobSearch.Classes.JobEntity.get_HiringCompany()' ---> System.MethodAccessException: JobSearch.Classes.JobEntity.get_HiringCompany() ---> System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed

Est-ce que quelqu'un a déjà rencontré cela ou a trouvé une solution de contournement pour cette erreur?

Répondre

1

Je viens de trouver la réponse à ma propre question. Je n'ai pas déclaré explicitement ma classe JobEntity comme "public". Faire cela a résolu le problème.