Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Chiusa Adatta ai principianti
#176 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
66/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
csharp
Ambito
backend

Direzione di ricerca

Inizia da src/ReactiveUI.Binding.Shared/Fallback/RuntimePropertyRaiser.cs, soprattutto dalle righe indicate 152–157 e dal percorso di eccezione alle righe 108–114. Verifica come il runtime risolve IReactiveObject e IReactiveObjectExtensions tra i rispettivi assembly, quindi riproduci il problema con l’esempio MVVM di Avalonia usando ReactiveUI 26.0.1. Il lavoro è concluso quando ToPropertyUnsafe viene eseguito senza generare eccezioni in questa riproduzione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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

Lingua principale
C#
Stelle
9
Fork
4
Merge medio
7h 7m
PR unite (30g)
75

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di reactiveui/ReactiveUI.Binding.SourceGenerators

Tutte le issue di reactiveui/ReactiveUI.Binding.SourceGenerators

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.