Sto recuperando un elenco di elenchi di marketing. Mentre lo faccio, sembra essere un'operazione di successo secondo il mio controllo usando intellisense. Quando cerco ...Entities[0].Attributes["nick"]
ottengo un oggetto (con i dati corretti da qualche parte). Ma non posso accedervi a livello di programmazione (invece devo cliccare in giro come una scimmia tramite i vantaggi per ripiegare le cose buone).Come accedere ai valori da fetchedXML quando si utilizzano alias per gli attributi in CRM Dynamics?
Infatti, sto ottenendo che le entità utilizzino il codice riportato di seguito. Il problema è che non sono Strings
secondo il computer. Sono di tipo Microsoft.Xrm.Sdk.AliasedValue
e non so come accedere al nick reale al loro interno.
new Contact
{
Name = element.Attributes["nick"] as String,
Mail = element.Attributes["mail"] as String
}
Intellisense dice che Value
è lì (ed è il valore corretto troppo), ma non possono accedere digitando .Value
. Sospetto che dovrei usare "come" o qualcosa del genere ma al momento sono bloccato. Qualche suggerimento? As
'ing a String
, che dovrebbe lavorare, mi dà null
...
Ho letto this article e molti altri come esso e il modo in cui la vedo io, dovrei essere in grado di accedere a tutti le cose divertenti lì dentro Non posso però ...
Ho notato che il codice seguente mi fornisce i dati che sto cercando disperatamente di ottenere ma questo non può essere una sintassi professionale, vero ?! Scherzi a parte, sembra uno studente di liceo con ADHD e sbornia cercato di farlo ...
new Contact
{
Name = ((Microsoft.Xrm.Sdk.AliasedValue)result.Entities[0].Attributes["nick"]).Value,
Mail = ((Microsoft.Xrm.Sdk.AliasedValue)result.Entities[0].Attributes["mail"]).Value
}
Voglio dire, sul serio - questo è un brutto pezzo di codice ... Ci deve essere un modo migliore! Temo, tuttavia, che non c'è perché this discussion sembra essere utilizzando la sintassi che oltre ...
c'è niente di sbagliato con il cast –
@JamesWood Haha, dicono che per il mio ex professore all'università. "Se hai bisogno di un cast, hai un cattivo design. Immagino che avessi ragione che ** in alcuni casi ** il casting ** è ** corretto, ma probabilmente in questo caso sarebbe la colpa di Microsoft. Era negli anni '90 quando Java era il bambino d'oro e l'unica strada da percorrere. La SM era malvagia e una progenie di Satana, haha. –
Beh, se non vuoi cast puoi usare le entità fortemente tipizzate. Il punto dell'entità legata in ritardo è quello di consentire di essere flessibili, che in questo caso significa che devi lanciare una volta ogni tanto. Anche in questo caso non stai lanciando per cambiare l'oggetto (ad esempio int to decimal), stai trasmettendo in modo da avere accesso a tutte le proprietà. –