2012-01-30 34 views
1

我需要移動一些大文件,並且我想使用NserviceBus,因爲文件不會保留在系統上。我一直在嘗試使用v.3中的新數據總線功能來啓動和運行。 文件在一個進程中生成,然後傳遞到總線上。我的問題是我無法啓動公共汽車。我有一個示例應用程序下面,基本上反映了我的設置,不同的是在「真正的」應用程序,總線生活在不同的應用程序(不推到了一個服務器尚未所以我只是運行一個開發實例)NServicebus 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(); 
    } 
} 

我已經改變了我的代碼在發件人類來發送非數據總線消息,和一個簡單的消息,這工作得很好。但是,當我嘗試使用它來發送Databus消息時,我總是收到一個NullReferenceException異常。如果有人能給我一個指針,我會非常感激。

回答

1

您需要更改

private IBus Bus {get;組; }

至:

public IBus Bus {get;組; }

爲了獲得對總線的依賴注入。