2015-08-26 3 views
3

Есть ли способ создать PCL с сообщениями NServiceBus (например, для ServiceStack)? Я пытался добавить пакет NuGet, но я, кажется, не поддерживает XamarinНаличие сообщений NServiceBus в портативной библиотеке классов PCL

Install-Package NServiceBus 

Install failed. Rolling back... 
Package 'NServiceBus 5.2.5' does not exist in project 'RZ.Services.ServiceModel' 
Install-Package : Could not install package 'NServiceBus 5.2.5'. You are trying to install this package into a project that targets  '.NETPortable,Version=v4.5,Profile=Profile7', but the package does not contain  any assembly references or content files that are compatible with that framework. For more information, contact the package author. 
At line:1 char:16 
+ Install-Package <<<< NServiceBus 
    + CategoryInfo   : NotSpecified: (:) [Install-Package], Exception 
    + FullyQualifiedErrorId :  NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand 

Любая работа обходные будущих планов поддержки этого? Мы никогда не будем использовать NServiceBus на других платформах, но мы можем использовать как NServiceBus, так и ServiceStack для поддержки разных сценариев, и поскольку они будут обмениваться сообщениями, они должны быть помещены в одну библиотеку классов.

ответ

4

Возможно, лучше не ссылаться на NServiceBus для ваших сообщений и лучше использовать ненавязчивый режим.

Смотрите документацию здесь: http://docs.particular.net/nservicebus/messaging/unobtrusive-mode

Это гарантирует, что ваше сообщение не должны наследовать от любого из интерфейсов NServiceBus маркеров.

Для настройки режима ненавязчивым следующий пример частично скопирован из DOCO:

BusConfiguration busConfiguration = new BusConfiguration(); 
ConventionsBuilder conventions = busConfiguration.Conventions(); 
conventions.DefiningCommandsAs(t => t.Namespace != null && t.Namespace == "MyNamespace" && t.Namespace.EndsWith("Commands")); 
conventions.DefiningEventsAs(t => t.Namespace != null && t.Namespace == "MyNamespace" && t.Namespace.EndsWith("Events")); 
conventions.DefiningMessagesAs(t => t.Namespace != null && t.Namespace == "Messages"); 
Смежные вопросы