Exception for setting value for (DateTime cval): TypeInitialization_Type, FSharp.Data.Adaptive.ShallowEqualityComparer`1
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- fsharp
- Área
- backend
Línea de trabajo
Comienza en src/FSharp.Data.Adaptive/ShallowEquality.fs alrededor de la línea 307, donde el issue informa de la reflexión sobre el campo _dateData de DateTime y el método ShallowEqualityComparer. Reproduce el fallo en una compilación de release de .NET 6 Blazor WASM y compáralo con el comportamiento de desarrollo o de .NET 8, donde funciona. Se considera terminado cuando la TypeInitializationException informada ya no se produce sin el workaround a nivel de aplicación.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Issue
I am using dotnet 6 blazor WASM, in developing mode it works fine. But when publish in release mode, I got exception at runtime.
I did some investigation, it looks like at https://github.com/fsprojects/FSharp.Data.Adaptive/blob/e8f3c2968b1b7904bddbc6127406e7c97b9f1df3/src/FSharp.Data.Adaptive/ShallowEquality.fs#L307
It will try to find DateTime's field _dateData (UInt64) for method of ShallowEqualityComparer[UInt64].ShallowEquals, but cannot find it.
By the way, I also tried with dotnet 8, it works fine.
Workaround
I can define below code in my own application to avoid this:
let _ = ShallowEqualityComparer<UInt64>.ShallowEquals
Exception detail:
Unhandled exception rendering component: TypeInitialization_Type, FSharp.Data.Adaptive.ShallowEqualityComparer`1
System.TypeInitializationException: TypeInitialization_Type, FSharp.Data.Adaptive.ShallowEqualityComparer`1
---> System.ArgumentNullException: ArgumentNull_Generic Arg_ParamName_Name, methodInfo
at System.Reflection.Emit.ILGenerator.EmitCall(OpCode , MethodInfo , Type[] )
at <StartupCode$FSharp-Data-Adaptive>.$ShallowEquality.equals$cont@273[DateTime](Type , Type , Unit )
at FSharp.Data.Adaptive.ShallowEqualityComparer`1[[System.DateTime, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]..cctor()
Exception_EndOfInnerExceptionStack
at FSharp.Data.Adaptive.AValModule.MapVal`2[[System.DateTime, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Tuple`2[[System.DateTime, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.FSharpFunc`2[[System.DateTime, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.Unit, FSharp.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], FSharp.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Compute(AdaptiveToken )
at FSharp.Data.Adaptive.AValModule.arg10@78[Tuple`2](AbstractVal`1 , AdaptiveToken )
at FSharp.Data.Adaptive.AValModule.AbstractVal`1[[System.Tuple`2[[System.DateTime, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.FSharpFunc`2[[System.DateTime, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.Unit, FSharp.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], FSharp.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetValue(AdaptiveToken )
at FSharp.Data.Adaptive.AValModule.AbstractVal`1[[System.Tuple`2[[System.DateTime, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.FSharpFunc`2[[System.DateTime, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.Unit, FSharp.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], FSharp.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].FSharp.Data.Adaptive.IAdaptiveValue<'T>.GetValue(AdaptiveToken )
at FSharp.Data.Adaptive.AValModule.BindVal`2[[System.Tuple`2[[System.DateTime, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.FSharpFunc`2[[System.DateTime, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.Unit, FSharp.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], FSharp.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Fun.Blazor.NodeRenderFragment, Fun.Blazor, Version=4.0.9.0, Culture=neutral, PublicKeyToken=null]].Compute(AdaptiveToken )
at FSharp.Data.Adaptive.AValModule.arg10@78[NodeRenderFragment](AbstractVal`1 , AdaptiveToken )
at FSharp.Data.Adaptive.AValModule.AbstractVal`1[[Fun.Blazor.NodeRenderFragment, Fun.Blazor, Version=4.0.9.0, Culture=neutral, PublicKeyToken=null]].GetValue(AdaptiveToken )
at FSharp.Data.Adaptive.AValModule.AbstractVal`1[[Fun.Blazor.NodeRenderFragment, Fun.Blazor, Version=4.0.9.0, Culture=neutral, PublicKeyToken=null]].FSharp.Data.Adaptive.IAdaptiveValue<'T>.GetValue(AdaptiveToken )
at FSharp.Data.Adaptive.EvaluationCallbackExtensions.sub@51-3[[Fun.Blazor.NodeRenderFragment, Fun.Blazor, Version=4.0.9.0, Culture=neutral, PublicKeyToken=null]].Invoke(Unit )
at FSharp.Data.Adaptive.Transaction.runFinalizers()
at FSharp.Data.Adaptive.Transaction.System.IDisposable.Dispose()
at FSharp.Data.Adaptive.TransactionModule.transact[Unit](FSharpFunc`2 )
at Fun.Blazor.DslAdaptive.setValue@92[[System.DateTime, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Invoke(DateTime )
at [email protected](MouseEventArgs delegateArg0)
at System.Reflection.RuntimeMethodInfo.Invoke(Object , BindingFlags , Binder , Object[] , CultureInfo )
--- End of stack trace from previous location ---
at <StartupCode$Fun-Blazor>.$Core.Microsoft-AspNetCore-Components-IHandleEvent-HandleEventAsync@130.MoveNext()
at MudBlazor.MudBaseButton.OnClickHandler(MouseEventArgs ev)
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task , ComponentState )
- Lenguaje dominante
- F#
- Estrellas
- 255
- Forks
- 25
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de fsprojects/FSharp.Data.Adaptive
-
AVal.custom silently serves a stale value when its compute function creates the node it reads (GC-dependent)Posiblemente ocupada @krauthaufen la tomó hace 20 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
fsprojects/FSharp.Data.Adaptive#122 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
AList.partitionAbiertofeature
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
fsprojects/FSharp.Data.Adaptive#89 · 6 comentarios ·
-
implement ChangeableOrderedSetQuizá libre de nuevo @krauthaufen la tomó hace 2367 días y no hay ningún pull request abierto. Abiertofeature
fsprojects/FSharp.Data.Adaptive#64 · 1 comentario · 1 asignado ·
Todos los issues de fsprojects/FSharp.Data.Adaptive
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
NaturalIntelligence/fast-xml-parser#890 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
enhancement
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
FujiNetWIFI/fujinet-lib#122 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
effort: low prio: low ready
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
digitalfabrik/integreat-cms#4616 ·
Los mantenedores suelen responder en 5 días
-
[BUG] Cloudflare KV binding 模式下 kvDriver.list() 沿用 EdgeOne 语义,字段名不匹配导致 key 格式下初始化 500 并耗尽 list 配额Posiblemente ocupada @wumingzhinu la tomó hoy. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
OpenListTeam/OpenList-Worker#125 ·
Los mantenedores suelen responder en 2 días
-
refactor topic-map
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día