Question

est à peu près une double question, mais au lieu d'utiliser Castle Dynamic Proxy J'utilise Linfu Obtenir type sous-jacent d'un objet proxy

J'utilise automapper pour créer des interfaces proxy que j'envoie à mon viewmodel dans Asp.net MVC. Mon problème est de ce que je peux dire que le MetadataProvider par défaut de MVC trouver les propriétés et les métadonnées en appelant .GetType () sur le modèle.

Alors qu'est-ce qui se passe est EditorFor () et les modèles DisplayFor () ne génère pas de champs. Ce que je dois faire est de trouver le type de cible proxy, puis générer mes modèles. Je sais que je peux analyser le nom et utiliser GetType ( « theName »), mais me demandais s'il y avait un moyen facile.

Était-ce utile?

La solution

LinFu.DynamicProxy ne pas exposer directement l'objet sous-jacent d'une procuration. Il redirige simplement chaque appel à une instance de mise en œuvre de IInterceptor méthode. Pour accéder à l'objet sous-jacent, vous devez savoir si oui ou non l'instance intercepteurs en cours a en fait une instance de la classe cible, ou non.

Si vous travaillez avec AutoMapper, autant que je sache, ils utilisent LinFu.DynamicObject faire beaucoup de taping de canard, et appelant GetType () sur un type dynamique généré par LinFu.DynamicObject ne sera même pas vous obtenez le type réel dans votre modèle de domaine - il va juste vous faire un objet qui a été littéralement canard collées ensemble par lui-même Linfu

.

Autres conseils

obtenir les dernières AutoMapper - il utilise Castle Dynamic Proxy, et vous savez déjà comment obtenir ce à partir de là:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top