我需要移动一些大文件,并且我想使用NserviceBus,因为这些文件不会持久保存在系统中。我一直在尝试使用v.3中新的databus特性来启动和运行它。这些文件在一个进程中生成,然后传递到总线上。我的问题是我不能发动公交车。我下面有一个示例应用程序,它基本上反映了我的设置,除了在“真实”应用程序中,总线驻留在不同的应用程序中(还没有推送到服务器,所以我只运行一个开发实例)
#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消息和一条简单的消息,并且运行良好。但是,当我尝试使用它来发送数据总线消息时,我总是得到总线的NullReferenceException。如果有人能给我一个指针,我将不胜感激。
发布于 2012-01-31 17:12:31
你需要改变
私有IBus总线{ get;set;}
至:
公共IBus总线{ get;set;}
去给公交车打针。
https://stackoverflow.com/questions/9065015
复制相似问题