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

[Bug] `ToPropertyUnsafe` (and Possibly Other Unsafe Methods) Always Fails

Abierto Apto para principiantes
#176 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
66/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
csharp
Área
backend

Línea de trabajo

Empieza en src/ReactiveUI.Binding.Shared/Fallback/RuntimePropertyRaiser.cs, especialmente en las líneas referenciadas 152–157 y en la ruta de excepción de 108–114. Comprueba cómo el runtime resuelve IReactiveObject e IReactiveObjectExtensions entre sus ensamblados y, después, reproduce el problema con el ejemplo de MVVM de Avalonia usando ReactiveUI 26.0.1. Se considera terminado cuando ToPropertyUnsafe se ejecuta sin lanzar una excepción en esa reproducción.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug
Prerequisites
  • I have searched this repository's open and closed issues for duplicates.
  • I am using the latest stable release.
What happens

ToPropertyUnsafe always fails, because this code is wrong:

https://github.com/reactiveui/ReactiveUI.Binding.SourceGenerators/blob/c79c70ccff42edbd97fe7e1dcac6edabc563dd52/src/ReactiveUI.Binding.Shared/Fallback/RuntimePropertyRaiser.cs#L152-L157

IReactiveObject is defined in the ReactiveUI.Core assembly, while IReactiveObjectExtensions is defined the ReactiveUI assembly, so the code above always fails, and ToPropertyUnsafe ends up throwing this exception:

https://github.com/reactiveui/ReactiveUI.Binding.SourceGenerators/blob/c79c70ccff42edbd97fe7e1dcac6edabc563dd52/src/ReactiveUI.Binding.Shared/Fallback/RuntimePropertyRaiser.cs#L108-L114

What you expected instead

No exception thrown.

Minimal reproduction

In a fresh Avalonia MVVM app with ReactiveUI, add the following lines to the MainViewModel:

    private readonly ObservableAsPropertyHelper<string> _valueOaph;
    public MainViewModel()
    {
        _valueOaph = Observable.Return("").ToPropertyUnsafe(this, x => x.Value)
    }
    public string Value => _valueOaph.Value;
Steps to reproduce
  1. Create an Avalonia MVVM app with Reactive UI: dotnet new avalonia.mvvm -m ReactiveUI
  2. Add the lines mentioned in Minimal Reproduction
  3. dotnet run
Exception and stack trace

Package and version

ReactiveUI 26.0.1

UI framework

Avalonia

Operating system

Windows

Target framework

net10.0

Device and OS version

No response

IDE

No response

Did this work in an earlier version?

No response

Workaround

No response

Additional information

No response

Lenguaje dominante
C#
Estrellas
9
Forks
2
Merge medio
6 h 48 min
PR fusionados (30 d)
71

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 reactiveui/ReactiveUI.Binding.SourceGenerators

Todos los issues de reactiveui/ReactiveUI.Binding.SourceGenerators

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.