Либо это
var subj = new Subject<string>();
var o = Observable.CreateWithDisposable<string>(observer =>
{
Console.WriteLine("subscribed");
return subj.Subscribe(observer);
});
или (аналогично ответу Скотта)
var o = Observable.Defer(() =>
{
Console.WriteLine("subscribed");
return subj;
});
В первом случае у вас больше свободы, так как у вас есть наблюдатель, переданный в качестве параметра, поэтому в дополнение к маршрутизации вывода субъекта наблюдателю вы можете вызвать Наблюдатель. OnNext, OnError, OnComplete, когда ваша логика требует этого.