Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Exception for setting value for (DateTime cval): TypeInitialization_Type, FSharp.Data.Adaptive.ShallowEqualityComparer`1

Abierto
#117 1 comentario 0 reacciones 0 asignados Ver en GitHub

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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de fsprojects/FSharp.Data.Adaptive

Todos los issues de fsprojects/FSharp.Data.Adaptive

Issues similares

Más issues de Backend & API Design

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.