我需要移动一些大文件,我想使用NserviceBus,因为文件不会保留在系统上。我一直在尝试使用第3版中的新数据总线功能来启动和运行。 文件在一个进程中生成,然后传递到总线上。我的问题是我无法启动公交车。我在下面有一个示例应用程序基本上反映了我的设置,除了在“真实”应用程序中,总线存在于不同的应用程序中(还没有推送到服务器,所以我只运行一个开发实例)
#region Declarations
private IBus Bus { get; set; }
#endregion
#region Constructors
public Sender()
{
if (Directory.Exists(BasePath))
{
Bus = Configure.Instance
.FileShareDataBus(BasePath)
.UnicastBus().DoNotAutoSubscribe()
.CreateBus()
.Start();
}
}
#endregion
#region Methods
public void SendMessage()
{
// get a list of file names
List<string> fileList = Directory.GetFiles(@"c:\test\").ToList();
Bus.Send<GenericListMessage>(message =>
{
message.Name = "TEST";
message.FileList = new DataBusProperty<List<string>>(fileList);
});
}
#endregion
我的EndpointConfig.cs看起来像这样:
public class EndpointConfig : IConfigureThisEndpoint, AsA_Client
{
}
internal class SetupDataBus : IWantCustomInitialization
{
public static string BasePath = @"c:\storage\";
public void Init()
{
Configure.Instance
.FileShareDataBus(BasePath)
.UnicastBus()
.DoNotAutoSubscribe();
}
}
我已经在Sender类中更改了我的代码以发送非Databus消息和一条简单的消息,这很好用。但是当我尝试使用它发送Databus消息时,我不断为总线获取NullReferenceException。如果有人能给我指针,我会非常感激。
答案 0 :(得分:1)
您需要更改
私人IBus巴士{get;组; }
为:
公共IBus巴士{get;组; }
为公共汽车进行依赖注射。