C# 可观察类属性不';t触发器订阅

C# 可观察类属性不';t触发器订阅,c#,.net-core,rx.net,C#,.net Core,Rx.net,简单的可观察变量按预期工作,在同一线程上立即触发回调。 为什么任何可观察类型的类变量(Subject、ISubject、observable、IObservable)都不会触发回调 简单变量示例-[Works] var x1 = new Subject<string>(); var x2 = x1.DistinctUntilChanged(); x2.Subscribe(o => { // Triggered as expected }); x1.OnNext("Hel

简单的可观察变量按预期工作,在同一线程上立即触发回调。 为什么任何可观察类型的类变量(Subject、ISubject、observable、IObservable)都不会触发回调

简单变量示例-[Works]

var x1 = new Subject<string>();
var x2 = x1.DistinctUntilChanged();

x2.Subscribe(o =>
{
  // Triggered as expected
});

x1.OnNext("Hello");
var x1=新主题();
var x2=x1.DistinctUntilChanged();
x2.订阅(o=>
{
//按预期触发
});
x1.OnNext(“你好”);
类的示例-[不起作用]

public class InstrumentModel
{
  public Subject<string> Demo => new Subject<string>();
}

var class1 = new InstrumentModel();

class1.Demo
  //.DistinctUntilChanged()
  //.SubscribeOn(Scheduler.CurrentThread)
  //.ObserveOn(Scheduler.CurrentThread)
  .Subscribe(o =>
{
  // Never triggered 
});

class1.Demo.OnNext("Hello");
公共类工具模型
{
公共主题演示=>新主题();
}
var class1=新的工具模型();
1.演示
//.DistinctUntilChanged()
//.SubscribeOn(调度程序.CurrentThread)
//.ObserveOn(Scheduler.CurrentThread)
.订阅(o=>
{
//从未触发
});
class1.Demo.OnNext(“你好”);

问题在于,您制作了
演示
,每次使用
主题
时都返回它的新实例

您订阅的
Demo
实例与您在上调用的
OnNext()
实例不同

class1.Demo.Subscribe(...); // makes new instance `Subject<string>`

class1.Demo.OnNext("Hello"); // makes another new instance of `Subject<string>`

class1.Demo.Subscribe(…);//使新实例成为“主题”`
class1.Demo.OnNext(“你好”);//对“Subject”进行另一个新实例`
让它保持相同的实例,它就会工作。例如:

公共类工具模型
{
公共主题演示=新主题();
}
或:

公共类工具模型
{
公共工具模型()
{
this.Demo=新主题();
}
公共主题演示{get;}
}

问题在于,您制作了
演示
,每次使用
主题
时都返回它的新实例

您订阅的
Demo
实例与您在上调用的
OnNext()
实例不同

class1.Demo.Subscribe(...); // makes new instance `Subject<string>`

class1.Demo.OnNext("Hello"); // makes another new instance of `Subject<string>`

class1.Demo.Subscribe(…);//使新实例成为“主题”`
class1.Demo.OnNext(“你好”);//对“Subject”进行另一个新实例`
让它保持相同的实例,它就会工作。例如:

公共类工具模型
{
公共主题演示=新主题();
}
或:

公共类工具模型
{
公共工具模型()
{
this.Demo=新主题();
}
公共主题演示{get;}
}