ReactiveUI 的最小可运行示例 - 不是 运行
Minimum runnable example for ReactiveUI - not running
我想为我的 ReactiveUI 问题生成一个 MWE。但是我遇到了新问题。
这是我尝试过的:
using System;
using ReactiveUI;
using ReactiveUI.Fody.Helpers;
namespace ReactivUI_Test
{
class BarClass : ReactiveObject
{
[Reactive] public String Baz { get; set; } = "";
public BarClass(String b) { Baz = b; }
public BarClass() { Baz = "!!!"; }
public override String ToString() { return Baz.ToString(); }
}
class FooClass : ReactiveObject
{
[Reactive] public BarClass Bar { get; set; } = new BarClass();
public override String ToString() { return Bar.ToString(); }
}
class ViewModel: ReactiveObject
{
[Reactive] FooClass Foo { get; set; } = new FooClass();
public ViewModel()
{
this.WhenAnyValue(x => x.Foo.Bar.Baz)
.Subscribe(x => Console.WriteLine("Hallo " + x?.ToString())); // <- Runtime Error in this line
Console.WriteLine("Example 1");
this.Foo.Bar.Baz = null;
Console.WriteLine("Example 2a");
this.Foo.Bar = new BarClass();
Console.WriteLine("Example 2b");
this.Foo.Bar = new BarClass();
Console.WriteLine("Example 3");
this.Foo.Bar = new BarClass() { Baz = "Something" };
Console.WriteLine("Example 4");
this.Foo = new FooClass() ;
Console.WriteLine("Finish");
Console.ReadLine();
}
}
class Program
{
static void Main(string[] args)
{
ViewModel vm = new ViewModel();
}
}
}
我得到的运行时错误是:
TypeLoadException: The method "GetActivationForView" of Typ
"ReactiveUI.ActivationForViewFetcher" der Assembly "ReactiveUI.WPF,
Version=9.11.0.0, Culture=neutral, PublicKeyToken=null" has no
Implementation.
找到的解决方案:
Nuget 数据包:ReactiveUI.WPF 未安装。
现在作为纯控制台应用程序工作。
输出:
Hallo !!!
Example 1
Hallo
Example 2a
Hallo !!!
Example 2b
Example 3
Hallo Something
Example 4
Hallo !!!
我想为我的 ReactiveUI 问题生成一个 MWE。但是我遇到了新问题。
这是我尝试过的:
using System;
using ReactiveUI;
using ReactiveUI.Fody.Helpers;
namespace ReactivUI_Test
{
class BarClass : ReactiveObject
{
[Reactive] public String Baz { get; set; } = "";
public BarClass(String b) { Baz = b; }
public BarClass() { Baz = "!!!"; }
public override String ToString() { return Baz.ToString(); }
}
class FooClass : ReactiveObject
{
[Reactive] public BarClass Bar { get; set; } = new BarClass();
public override String ToString() { return Bar.ToString(); }
}
class ViewModel: ReactiveObject
{
[Reactive] FooClass Foo { get; set; } = new FooClass();
public ViewModel()
{
this.WhenAnyValue(x => x.Foo.Bar.Baz)
.Subscribe(x => Console.WriteLine("Hallo " + x?.ToString())); // <- Runtime Error in this line
Console.WriteLine("Example 1");
this.Foo.Bar.Baz = null;
Console.WriteLine("Example 2a");
this.Foo.Bar = new BarClass();
Console.WriteLine("Example 2b");
this.Foo.Bar = new BarClass();
Console.WriteLine("Example 3");
this.Foo.Bar = new BarClass() { Baz = "Something" };
Console.WriteLine("Example 4");
this.Foo = new FooClass() ;
Console.WriteLine("Finish");
Console.ReadLine();
}
}
class Program
{
static void Main(string[] args)
{
ViewModel vm = new ViewModel();
}
}
}
我得到的运行时错误是:
TypeLoadException: The method "GetActivationForView" of Typ "ReactiveUI.ActivationForViewFetcher" der Assembly "ReactiveUI.WPF, Version=9.11.0.0, Culture=neutral, PublicKeyToken=null" has no Implementation.
找到的解决方案:
Nuget 数据包:ReactiveUI.WPF 未安装。
现在作为纯控制台应用程序工作。
输出:
Hallo !!!
Example 1
Hallo
Example 2a
Hallo !!!
Example 2b
Example 3
Hallo Something
Example 4
Hallo !!!