遇到Spring.NET缓存问题

时间:2010-06-29 21:22:03

标签: caching spring.net

我一直在阅读这篇文章,以帮助我继续我的缓存并遇到问题。当我尝试调用下面的方法时,我收到以下错误:

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

我认为我在下面使用的属性语法一旦返回缓存我的数据就会使用结果的LocalTariffId属性。一旦我尝试进入该方法,就会发生此错误。在我看来,它正在尝试过早访问该属性。我必须遗漏一些东西,所以你能提供的任何建议都非常感谢!

[CacheResult("AspNetCache", "'LocalTariff.Id=' + LocalTariffId", TimeToLive = "00:10:00")]
public Domain.LocalTariffs.LocalTariff GetDefault(string agencyCode)

我在第一次错误之后也遇到了一个奇怪的错误,我希望有人可以解释一下。它与log4net有关,至少我认为它确实如此。我的日志记录正在运行,所以我不确定这个是什么。

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>

1 个答案:

答案 0 :(得分:1)

您无法使用返回的对象生成CacheResult属性的键。 您必须使用该方法的参数来生成密钥(此处为'#agencyCode')。