Databinding in XBAP genera un errore di riflessione
-
12-09-2019 - |
Domanda
Ho una casella di riepilogo che sto legame con una collezione di oggetti.
Nel codice dietro, ho un elenco di posti di lavoro e associarlo alla fonte elementi ListBox:
List<JobEntity> jobList = new List<JobEntity>();
Job j = new Job();
jobList = j.LoadJobs(pageSize, pageIndex);
lbxJobs.ItemsSource = jobList;
Nel XAML, allora provo ed accedo alcune delle proprietà del lavoro.
<ListBox.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding Path=Title}" Margin="5 0" />
<TextBlock Text="{Binding Path=HiringCompany}" Margin="5 0" />
</WrapPanel>
</DataTemplate>
</ListBox.ItemTemplate>
Questo funziona bene per una normale applicazione WPF, ma come un app XBAP esso genera un errore che, in fondo dice che non può ottenere il valore perché le autorizzazioni di riflessione è stato negato.
Errore System.Windows.Data: 16: Impossibile ottenere 'HiringCompany' valore (tipo 'String') da '' (tipo 'JobEntity'). BindingExpression: Path = HiringCompany; DataItem = 'JobEntity' (HashCode = 64.844.482); elemento di destinazione è 'TextBlock' (Name = ''); proprietà di destinazione è 'Text' (tipo 'String') TargetInvocationException: 'System.Reflection.TargetInvocationException: di accesso Proprietà 'HiringCompany' su oggetto 'JobSearch.Classes.JobEntity' ha gettato il seguente eccezione: 'JobSearch.Classes.JobEntity.get_HiringCompany ()' ---> System.MethodAccessException: JobSearch.Classes.JobEntity.get_HiringCompany () ---> System.Security.SecurityException: Richiesta di autorizzazione di tipo 'System.Security.Permissions.ReflectionPermission, mscorlib, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' fallito
Ha un unico viaggio in questo prima o trovato una soluzione per questo errore?
Soluzione
Ho appena trovato la risposta alla mia domanda. Non ho avuto la mia classe JobEntity esplicitamente dichiarato come "pubblico". Facendo che ha risolto il problema.