Til.EventBus
1.3.0
dotnet add package Til.EventBus --version 1.3.0
NuGet\Install-Package Til.EventBus -Version 1.3.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Til.EventBus" Version="1.3.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Til.EventBus --version 1.3.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Til.EventBus, 1.3.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Til.EventBus as a Cake Addin #addin nuget:?package=Til.EventBus&version=1.3.0 // Install Til.EventBus as a Cake Tool #tool nuget:?package=Til.EventBus&version=1.3.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
EventBus
一个高效的事件总线
如何使用
< C#
using System;
using System.Collections;
using til.EventBus;
public class Demo {
public static void Main() {
IEventBus eventBus = new EventBus();
//自动注入带唯一Event形参的方法
//Type 注入静态方法
eventBus.put(typeof(Demo));
eventBus.put(new Demo());
eventBus.onEvent(new Event());
eventBus.onEvent(new DemoEvent("aabb"));
//发布一个携程事件 最初是给unity的携程使用的
foreach (var o in eventBus.onEvent_coroutine(new CoroutineEvent())) {
}
}
/// <summary>
/// 静态监听吗,通过 eventBus.put(typeof(Demo)); 自动注入
/// eventBus.onEvent(new DemoEvent()); 时也会被调用因为Event是DemoEvent超类
/// </summary>
public static void onEventStatic(Event e) {
}
/// <summary>
/// 通过EventAttribute注解排除监听
/// </summary>
/// <param name="e"></param>
[Event(eventAttributeType = EventAttributeType.no)]
public static void excludedEvent(Event e) {
}
public static IEnumerable onCoroutineEvent(CoroutineEvent @event) {
yield return null;
}
/// <summary>
/// 实例中的监听通过 eventBus.put(new Demo()); 自动注入
/// </summary>
/// <param name="e"></param>
public void onEvent(Event e) {
}
public class DemoEvent : Event {
/// <summary>
/// 通过包装传递数据
/// </summary>
public string data;
public DemoEvent(string data) {
this.data = data ?? throw new ArgumentNullException(nameof(data));
}
}
public class CoroutineEvent : Event {
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.