2010-06-29 5 views
0

J'ai lu cet article pour m'aider à mettre en cache et à rencontrer un problème. Lorsque je tente de faire un appel à la méthode ci-dessous je reçois l'erreur suivante:J'ai des problèmes avec la mise en cache Spring.NET

"Cannot initialize property or field node 'LocalTariffId' because the specified context is null." 

Je pensais que la syntaxe d'attribut j'utilise ci-dessous utiliserait la propriété LocalTariffId du résultat une fois qu'il retourne à mettre en cache mes données. Cette erreur se produit dès que j'essaie d'entrer dans la méthode. Il me semble qu'il essaie d'accéder à cette propriété trop tôt. Je dois manquer quelque chose, donc tout conseil que vous pourriez fournir est grandement apprécié! Je reçois aussi une erreur bizarre après la première erreur j'espérais que quelqu'un pourrait faire la lumière sur. Cela a à voir avec log4net au moins, je pense que c'est le cas. Mon enregistrement fonctionne, donc je ne suis pas sûr de savoir de quoi il s'agit.

IGCSoftware.HHG.Business.LocalTariffsFacade - Exception thrown in GetDefaultLocalTariff;GetDefaultLocalTariff;9c0bb393-369c-4501-a2ce-9325fe525e38;183341 ms 
<log4net.Error>Exception rendering object type [Spring.Core.NullValueInNestedPathException]<stackTrace>System.BadImageFormatException: The parameters and the signature of the method don't match. 
    at System.Reflection.RuntimeParameterInfo.GetParameters(IRuntimeMethodInfo methodHandle, MemberInfo member, Signature sig, ParameterInfo& returnParameter, Boolean fetchReturnParameter) 
    at System.Reflection.RuntimeMethodInfo.FetchNonReturnParameters() 
    at System.Reflection.RuntimeMethodInfo.GetParameters() 
    at System.Diagnostics.StackTrace.ToString(TraceFormat traceFormat) 
    at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 
    at System.Exception.GetStackTrace(Boolean needFileInfo) 
    at System.Exception.ToString(Boolean needFileLineInfo) 
    at System.Exception.ToString() 
    at log4net.ObjectRenderer.DefaultRenderer.RenderObject(RendererMap rendererMap, Object obj, TextWriter writer) 
    at log4net.ObjectRenderer.RendererMap.FindAndRender(Object obj, TextWriter writer)</stackTrace></log4net.Error> 

Répondre

1

Vous ne pouvez pas utiliser l'objet retourné pour générer la clé de l'attribut CacheResult. Vous devez utiliser les paramètres de la méthode pour générer la clé (ici '#agencyCode').

+0

Bruno, en ce qui concerne ce post http://forum.springframework.net/showpost.php?p=10767&postcount=2 en bas de votre message, je pensais que vous référeniez une propriété d'un objet de retour ([CacheResultItems ("thingById", "Id")] // utilisera Thing.Id comme une clé). Pourriez-vous clarifier un peu plus pour moi? – avidgoffer

Questions connexes