From a67597eeff777e5622bed849832fdf760a77d0fb Mon Sep 17 00:00:00 2001 From: Dan Siegel Date: Thu, 18 May 2023 11:23:27 -0600 Subject: [PATCH 1/4] chore: migrate Prism.Events to its own package --- PrismLibrary.sln | 15 ++++++ PrismLibrary_Core.slnf | 1 + PrismLibrary_Forms.slnf | 1 + PrismLibrary_Maui.slnf | 3 +- PrismLibrary_Uno.slnf | 1 + PrismLibrary_Wpf.slnf | 1 + e2e/Forms/HelloWorld.sln | 52 ++++++++++++++++++- e2e/Maui/PrismMauiDemo.sln | 6 +++ e2e/Uno/HelloWorld.sln | 32 +++++++++++- e2e/Wpf/HelloWorld.sln | 6 +++ .../BackgroundEventSubscription.cs | 0 .../Events => Prism.Events}/DataEventArgs.cs | 0 .../DelegateReference.cs | 0 .../DispatcherEventSubscription.cs | 0 .../EventAggregator.cs | 0 .../Events => Prism.Events}/EventBase.cs | 0 .../EventSubscription.cs | 0 .../IDelegateReference.cs | 0 .../IEventAggregator.cs | 0 .../IEventSubscription.cs | 0 src/Prism.Events/Prism.Events.csproj | 13 +++++ .../Events => Prism.Events}/PubSubEvent.cs | 0 .../SubscriptionToken.cs | 0 .../Events => Prism.Events}/ThreadOption.cs | 0 .../WeakDelegatesManager.cs | 0 25 files changed, 128 insertions(+), 3 deletions(-) rename src/{Prism.Core/Events => Prism.Events}/BackgroundEventSubscription.cs (100%) rename src/{Prism.Core/Events => Prism.Events}/DataEventArgs.cs (100%) rename src/{Prism.Core/Events => Prism.Events}/DelegateReference.cs (100%) rename src/{Prism.Core/Events => Prism.Events}/DispatcherEventSubscription.cs (100%) rename src/{Prism.Core/Events => Prism.Events}/EventAggregator.cs (100%) rename src/{Prism.Core/Events => Prism.Events}/EventBase.cs (100%) rename src/{Prism.Core/Events => Prism.Events}/EventSubscription.cs (100%) rename src/{Prism.Core/Events => Prism.Events}/IDelegateReference.cs (100%) rename src/{Prism.Core/Events => Prism.Events}/IEventAggregator.cs (100%) rename src/{Prism.Core/Events => Prism.Events}/IEventSubscription.cs (100%) create mode 100644 src/Prism.Events/Prism.Events.csproj rename src/{Prism.Core/Events => Prism.Events}/PubSubEvent.cs (100%) rename src/{Prism.Core/Events => Prism.Events}/SubscriptionToken.cs (100%) rename src/{Prism.Core/Events => Prism.Events}/ThreadOption.cs (100%) rename src/{Prism.Core/Events => Prism.Events}/WeakDelegatesManager.cs (100%) diff --git a/PrismLibrary.sln b/PrismLibrary.sln index c7a3e60aba..c16390cab7 100644 --- a/PrismLibrary.sln +++ b/PrismLibrary.sln @@ -99,6 +99,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Maui.Tests", "tests\M EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.DryIoc.Maui.Tests", "tests\Maui\Prism.DryIoc.Maui.Tests\Prism.DryIoc.Maui.Tests.csproj", "{8711D306-1118-4A11-9399-EF14AA13015E}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Prism.Events", "src\Prism.Events\Prism.Events.csproj", "{8610485A-BE9F-4938-86D4-E9F1FA1739A0}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -421,6 +423,18 @@ Global {8711D306-1118-4A11-9399-EF14AA13015E}.Release|x64.Build.0 = Release|Any CPU {8711D306-1118-4A11-9399-EF14AA13015E}.Release|x86.ActiveCfg = Release|Any CPU {8711D306-1118-4A11-9399-EF14AA13015E}.Release|x86.Build.0 = Release|Any CPU + {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Debug|x64.ActiveCfg = Debug|Any CPU + {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Debug|x64.Build.0 = Debug|Any CPU + {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Debug|x86.ActiveCfg = Debug|Any CPU + {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Debug|x86.Build.0 = Debug|Any CPU + {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Release|Any CPU.Build.0 = Release|Any CPU + {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Release|x64.ActiveCfg = Release|Any CPU + {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Release|x64.Build.0 = Release|Any CPU + {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Release|x86.ActiveCfg = Release|Any CPU + {8610485A-BE9F-4938-86D4-E9F1FA1739A0}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -466,6 +480,7 @@ Global {540CEEC1-D541-4614-BF0B-18056A83E434} = {00FFDC13-7397-46F1-897E-A62A7575D28A} {7A1E157F-D4CD-4E6B-9CE3-1894EB2A15A7} = {540CEEC1-D541-4614-BF0B-18056A83E434} {8711D306-1118-4A11-9399-EF14AA13015E} = {540CEEC1-D541-4614-BF0B-18056A83E434} + {8610485A-BE9F-4938-86D4-E9F1FA1739A0} = {F3664D7A-6FF5-4D1F-9F5F-26EE87F032D3} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C7433AE2-B1A0-4C1A-887E-5CAA7AAF67A6} diff --git a/PrismLibrary_Core.slnf b/PrismLibrary_Core.slnf index 7244cad2a2..d870bc04cf 100644 --- a/PrismLibrary_Core.slnf +++ b/PrismLibrary_Core.slnf @@ -5,6 +5,7 @@ "src\\Containers\\Prism.DryIoc.Shared\\Prism.DryIoc.Shared.shproj", "src\\Containers\\Prism.Unity.Shared\\Prism.Unity.Shared.shproj", "src\\Prism.Core\\Prism.Core.csproj", + "src\\Prism.Events\\Prism.Events.csproj", "tests\\Containers\\Prism.Container.DryIoc.Tests\\Prism.Ioc.DryIoc.Tests.csproj", "tests\\Containers\\Prism.Container.Shared\\Prism.Ioc.Shared.shproj", "tests\\Containers\\Prism.Container.Unity.Tests\\Prism.Ioc.Unity.Tests.csproj", diff --git a/PrismLibrary_Forms.slnf b/PrismLibrary_Forms.slnf index c9684aa116..42c38975c8 100644 --- a/PrismLibrary_Forms.slnf +++ b/PrismLibrary_Forms.slnf @@ -9,6 +9,7 @@ "src\\Forms\\Prism.Forms\\Prism.Forms.csproj", "src\\Forms\\Prism.Unity.Forms\\Prism.Unity.Forms.csproj", "src\\Prism.Core\\Prism.Core.csproj", + "src\\Prism.Events\\Prism.Events.csproj", "tests\\Containers\\Prism.Container.DryIoc.Tests\\Prism.Ioc.DryIoc.Tests.csproj", "tests\\Containers\\Prism.Container.Shared\\Prism.Ioc.Shared.shproj", "tests\\Containers\\Prism.Container.Unity.Tests\\Prism.Ioc.Unity.Tests.csproj", diff --git a/PrismLibrary_Maui.slnf b/PrismLibrary_Maui.slnf index 08f3985beb..0248af8dfc 100644 --- a/PrismLibrary_Maui.slnf +++ b/PrismLibrary_Maui.slnf @@ -7,6 +7,7 @@ "src\\Maui\\Prism.Maui.Rx\\Prism.Maui.Rx.csproj", "src\\Maui\\Prism.Maui\\Prism.Maui.csproj", "src\\Prism.Core\\Prism.Core.csproj", + "src\\Prism.Events\\Prism.Events.csproj", "tests\\Containers\\Prism.Container.DryIoc.Tests\\Prism.Ioc.DryIoc.Tests.csproj", "tests\\Containers\\Prism.Container.Shared\\Prism.Ioc.Shared.shproj", "tests\\Maui\\Prism.DryIoc.Maui.Tests\\Prism.DryIoc.Maui.Tests.csproj", @@ -14,4 +15,4 @@ "tests\\Prism.Core.Tests\\Prism.Core.Tests.csproj" ] } -} \ No newline at end of file +} diff --git a/PrismLibrary_Uno.slnf b/PrismLibrary_Uno.slnf index cb1dcdc35d..3438a423d2 100644 --- a/PrismLibrary_Uno.slnf +++ b/PrismLibrary_Uno.slnf @@ -5,6 +5,7 @@ "src\\Containers\\Prism.DryIoc.Shared\\Prism.DryIoc.Shared.shproj", "src\\Containers\\Prism.Unity.Shared\\Prism.Unity.Shared.shproj", "src\\Prism.Core\\Prism.Core.csproj", + "src\\Prism.Events\\Prism.Events.csproj", "src\\Uno\\Prism.DryIoc.Uno\\Prism.DryIoc.Uno.WinUI.csproj", "src\\Uno\\Prism.Uno\\Prism.Uno.WinUI.csproj", "tests\\Containers\\Prism.Container.DryIoc.Tests\\Prism.Ioc.DryIoc.Tests.csproj", diff --git a/PrismLibrary_Wpf.slnf b/PrismLibrary_Wpf.slnf index d77d7ec491..b988d35c28 100644 --- a/PrismLibrary_Wpf.slnf +++ b/PrismLibrary_Wpf.slnf @@ -5,6 +5,7 @@ "src\\Containers\\Prism.DryIoc.Shared\\Prism.DryIoc.Shared.shproj", "src\\Containers\\Prism.Unity.Shared\\Prism.Unity.Shared.shproj", "src\\Prism.Core\\Prism.Core.csproj", + "src\\Prism.Events\\Prism.Events.csproj", "src\\Wpf\\Prism.DryIoc.Wpf\\Prism.DryIoc.Wpf.csproj", "src\\Wpf\\Prism.Unity.Wpf\\Prism.Unity.Wpf.csproj", "src\\Wpf\\Prism.Wpf\\Prism.Wpf.csproj", diff --git a/e2e/Forms/HelloWorld.sln b/e2e/Forms/HelloWorld.sln index 8e343dd7a7..0a48d3732d 100644 --- a/e2e/Forms/HelloWorld.sln +++ b/e2e/Forms/HelloWorld.sln @@ -1,4 +1,4 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.29709.97 MinimumVisualStudioVersion = 10.0.40219.1 @@ -45,6 +45,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution ..\..\Packages.props = ..\..\Packages.props EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Prism.Events", "..\..\src\Prism.Events\Prism.Events.csproj", "{31BAD7FA-1135-41E4-BE75-EA5AB1C96310}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution ..\..\src\Containers\Prism.DryIoc.Shared\Prism.DryIoc.Shared.projitems*{6e7ec81d-da39-4c4f-a898-0148558c34f4}*SharedItemsImports = 13 @@ -797,6 +799,54 @@ Global {53FF796C-02CA-4276-B3F9-207E5ABC67EB}.Release|x64.Build.0 = Release|Any CPU {53FF796C-02CA-4276-B3F9-207E5ABC67EB}.Release|x86.ActiveCfg = Release|Any CPU {53FF796C-02CA-4276-B3F9-207E5ABC67EB}.Release|x86.Build.0 = Release|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Ad-Hoc|x64.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Ad-Hoc|x86.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.AppStore|ARM.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.AppStore|ARM.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.AppStore|iPhone.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.AppStore|x64.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.AppStore|x64.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.AppStore|x86.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.AppStore|x86.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Debug|Any CPU.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Debug|ARM.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Debug|ARM.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Debug|iPhone.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Debug|x64.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Debug|x64.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Debug|x86.ActiveCfg = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Debug|x86.Build.0 = Debug|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Release|Any CPU.ActiveCfg = Release|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Release|Any CPU.Build.0 = Release|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Release|ARM.ActiveCfg = Release|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Release|ARM.Build.0 = Release|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Release|iPhone.ActiveCfg = Release|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Release|iPhone.Build.0 = Release|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Release|x64.ActiveCfg = Release|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Release|x64.Build.0 = Release|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Release|x86.ActiveCfg = Release|Any CPU + {31BAD7FA-1135-41E4-BE75-EA5AB1C96310}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/e2e/Maui/PrismMauiDemo.sln b/e2e/Maui/PrismMauiDemo.sln index f12319d995..44bc5dff8c 100644 --- a/e2e/Maui/PrismMauiDemo.sln +++ b/e2e/Maui/PrismMauiDemo.sln @@ -29,6 +29,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Maui.Tests", "..\..\t EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Core.Tests", "..\..\tests\Prism.Core.Tests\Prism.Core.Tests.csproj", "{E0F13AA9-8083-47CA-B10D-93C5285D1505}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Prism.Events", "..\..\src\Prism.Events\Prism.Events.csproj", "{5623CB62-59C1-49BC-BB16-4C5D63D82DAC}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -76,6 +78,10 @@ Global {E0F13AA9-8083-47CA-B10D-93C5285D1505}.Debug|Any CPU.Build.0 = Debug|Any CPU {E0F13AA9-8083-47CA-B10D-93C5285D1505}.Release|Any CPU.ActiveCfg = Release|Any CPU {E0F13AA9-8083-47CA-B10D-93C5285D1505}.Release|Any CPU.Build.0 = Release|Any CPU + {5623CB62-59C1-49BC-BB16-4C5D63D82DAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5623CB62-59C1-49BC-BB16-4C5D63D82DAC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5623CB62-59C1-49BC-BB16-4C5D63D82DAC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5623CB62-59C1-49BC-BB16-4C5D63D82DAC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/e2e/Uno/HelloWorld.sln b/e2e/Uno/HelloWorld.sln index 77fdde9a62..40a132df35 100644 --- a/e2e/Uno/HelloWorld.sln +++ b/e2e/Uno/HelloWorld.sln @@ -1,4 +1,4 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.2.32210.308 MinimumVisualStudioVersion = 15.0.26124.0 @@ -39,6 +39,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "modules", "modules", "{F67B EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ModuleA", "ModuleA\ModuleA.csproj", "{5AD22541-BC5D-45E0-9C95-87B51300FF1C}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Prism.Events", "..\..\src\Prism.Events\Prism.Events.csproj", "{ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -396,6 +398,34 @@ Global {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|x64.Build.0 = Release|Any CPU {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|x86.ActiveCfg = Release|Any CPU {5AD22541-BC5D-45E0-9C95-87B51300FF1C}.Release|x86.Build.0 = Release|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|ARM.ActiveCfg = Debug|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|ARM.Build.0 = Debug|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|ARM64.Build.0 = Debug|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|iPhone.Build.0 = Debug|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|x64.ActiveCfg = Debug|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|x64.Build.0 = Debug|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|x86.ActiveCfg = Debug|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Debug|x86.Build.0 = Debug|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|Any CPU.Build.0 = Release|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|ARM.ActiveCfg = Release|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|ARM.Build.0 = Release|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|ARM64.ActiveCfg = Release|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|ARM64.Build.0 = Release|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|iPhone.ActiveCfg = Release|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|iPhone.Build.0 = Release|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|x64.ActiveCfg = Release|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|x64.Build.0 = Release|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|x86.ActiveCfg = Release|Any CPU + {ABC0F8AF-6FED-4C3E-80B3-54F1A7CC5930}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/e2e/Wpf/HelloWorld.sln b/e2e/Wpf/HelloWorld.sln index 87b12ac3f9..b4014da1bb 100644 --- a/e2e/Wpf/HelloWorld.sln +++ b/e2e/Wpf/HelloWorld.sln @@ -23,6 +23,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloWorld.Core", "HelloWor EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Modules", "Modules", "{63541838-3D6A-4F2E-92EF-AC4953BB9B9B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Prism.Events", "..\..\src\Prism.Events\Prism.Events.csproj", "{E35BF062-652E-4520-8DD8-55DC80012D57}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution ..\..\src\Containers\Prism.DryIoc.Shared\Prism.DryIoc.Shared.projitems*{a0842858-bfd5-41ae-bde7-cbd870bc9900}*SharedItemsImports = 5 @@ -65,6 +67,10 @@ Global {F9541A8C-42DD-4340-AB57-54C7AAAC1BCC}.Debug|Any CPU.Build.0 = Debug|Any CPU {F9541A8C-42DD-4340-AB57-54C7AAAC1BCC}.Release|Any CPU.ActiveCfg = Release|Any CPU {F9541A8C-42DD-4340-AB57-54C7AAAC1BCC}.Release|Any CPU.Build.0 = Release|Any CPU + {E35BF062-652E-4520-8DD8-55DC80012D57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E35BF062-652E-4520-8DD8-55DC80012D57}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E35BF062-652E-4520-8DD8-55DC80012D57}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E35BF062-652E-4520-8DD8-55DC80012D57}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/Prism.Core/Events/BackgroundEventSubscription.cs b/src/Prism.Events/BackgroundEventSubscription.cs similarity index 100% rename from src/Prism.Core/Events/BackgroundEventSubscription.cs rename to src/Prism.Events/BackgroundEventSubscription.cs diff --git a/src/Prism.Core/Events/DataEventArgs.cs b/src/Prism.Events/DataEventArgs.cs similarity index 100% rename from src/Prism.Core/Events/DataEventArgs.cs rename to src/Prism.Events/DataEventArgs.cs diff --git a/src/Prism.Core/Events/DelegateReference.cs b/src/Prism.Events/DelegateReference.cs similarity index 100% rename from src/Prism.Core/Events/DelegateReference.cs rename to src/Prism.Events/DelegateReference.cs diff --git a/src/Prism.Core/Events/DispatcherEventSubscription.cs b/src/Prism.Events/DispatcherEventSubscription.cs similarity index 100% rename from src/Prism.Core/Events/DispatcherEventSubscription.cs rename to src/Prism.Events/DispatcherEventSubscription.cs diff --git a/src/Prism.Core/Events/EventAggregator.cs b/src/Prism.Events/EventAggregator.cs similarity index 100% rename from src/Prism.Core/Events/EventAggregator.cs rename to src/Prism.Events/EventAggregator.cs diff --git a/src/Prism.Core/Events/EventBase.cs b/src/Prism.Events/EventBase.cs similarity index 100% rename from src/Prism.Core/Events/EventBase.cs rename to src/Prism.Events/EventBase.cs diff --git a/src/Prism.Core/Events/EventSubscription.cs b/src/Prism.Events/EventSubscription.cs similarity index 100% rename from src/Prism.Core/Events/EventSubscription.cs rename to src/Prism.Events/EventSubscription.cs diff --git a/src/Prism.Core/Events/IDelegateReference.cs b/src/Prism.Events/IDelegateReference.cs similarity index 100% rename from src/Prism.Core/Events/IDelegateReference.cs rename to src/Prism.Events/IDelegateReference.cs diff --git a/src/Prism.Core/Events/IEventAggregator.cs b/src/Prism.Events/IEventAggregator.cs similarity index 100% rename from src/Prism.Core/Events/IEventAggregator.cs rename to src/Prism.Events/IEventAggregator.cs diff --git a/src/Prism.Core/Events/IEventSubscription.cs b/src/Prism.Events/IEventSubscription.cs similarity index 100% rename from src/Prism.Core/Events/IEventSubscription.cs rename to src/Prism.Events/IEventSubscription.cs diff --git a/src/Prism.Events/Prism.Events.csproj b/src/Prism.Events/Prism.Events.csproj new file mode 100644 index 0000000000..60da74468b --- /dev/null +++ b/src/Prism.Events/Prism.Events.csproj @@ -0,0 +1,13 @@ + + + + netstandard2.0;net47;net6.0 + + + The Prism.Events provides an event mechanism that enables communications between loosely coupled components in an application. This mechanism, based on the event aggregator service, allows publishers and subscribers to communicate through events and still do not have a direct reference to each other. + +The EventAggregator provides multicast publish/subscribe functionality. This means there can be multiple publishers that raise the same event and there can be multiple subscribers listening to the same event. Consider using the EventAggregator to publish an event across modules and when sending a message between business logic code, such as controllers and presenters. + prism;wpf;xamarin;dotnet maui;maui;uno;unoplatform;mvvm;xaml + + + diff --git a/src/Prism.Core/Events/PubSubEvent.cs b/src/Prism.Events/PubSubEvent.cs similarity index 100% rename from src/Prism.Core/Events/PubSubEvent.cs rename to src/Prism.Events/PubSubEvent.cs diff --git a/src/Prism.Core/Events/SubscriptionToken.cs b/src/Prism.Events/SubscriptionToken.cs similarity index 100% rename from src/Prism.Core/Events/SubscriptionToken.cs rename to src/Prism.Events/SubscriptionToken.cs diff --git a/src/Prism.Core/Events/ThreadOption.cs b/src/Prism.Events/ThreadOption.cs similarity index 100% rename from src/Prism.Core/Events/ThreadOption.cs rename to src/Prism.Events/ThreadOption.cs diff --git a/src/Prism.Core/Events/WeakDelegatesManager.cs b/src/Prism.Events/WeakDelegatesManager.cs similarity index 100% rename from src/Prism.Core/Events/WeakDelegatesManager.cs rename to src/Prism.Events/WeakDelegatesManager.cs From 84b693c8663c10b3acb4a134bdb333668a40a816 Mon Sep 17 00:00:00 2001 From: Dan Siegel Date: Thu, 18 May 2023 11:26:35 -0600 Subject: [PATCH 2/4] chore: update description --- src/Prism.Core/Prism.Core.csproj | 5 ++++- src/Prism.Events/Prism.Events.csproj | 6 ++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Prism.Core/Prism.Core.csproj b/src/Prism.Core/Prism.Core.csproj index 9071e9b5d5..6d1702cb32 100644 --- a/src/Prism.Core/Prism.Core.csproj +++ b/src/Prism.Core/Prism.Core.csproj @@ -8,11 +8,14 @@ Prism is a fully open source version of the Prism guidance originally produced by Microsoft Patterns & Practices. Prism provides an implementation of a collection of design patterns that are helpful in writing well structured and maintainable XAML applications, including MVVM, dependency injection, commanding, event aggregation, and more. Prism's core functionality is a shared code base in a Portable Class Library targeting these platforms; WPF, and Xamarin Forms. Features that need to be platform specific are implemented in the respective libraries for the target platform. - prism;wpf;xamarin;mvvm;xaml + prism;wpf;xamarin;dotnet maui;maui;uno;unoplatform;mvvm;xaml + + + diff --git a/src/Prism.Events/Prism.Events.csproj b/src/Prism.Events/Prism.Events.csproj index 60da74468b..2613f8444f 100644 --- a/src/Prism.Events/Prism.Events.csproj +++ b/src/Prism.Events/Prism.Events.csproj @@ -4,10 +4,8 @@ netstandard2.0;net47;net6.0 - The Prism.Events provides an event mechanism that enables communications between loosely coupled components in an application. This mechanism, based on the event aggregator service, allows publishers and subscribers to communicate through events and still do not have a direct reference to each other. - -The EventAggregator provides multicast publish/subscribe functionality. This means there can be multiple publishers that raise the same event and there can be multiple subscribers listening to the same event. Consider using the EventAggregator to publish an event across modules and when sending a message between business logic code, such as controllers and presenters. - prism;wpf;xamarin;dotnet maui;maui;uno;unoplatform;mvvm;xaml + Prism.Events is a library that facilitates communication between loosely coupled components in an application. It provides an event aggregator service that allows publishers and subscribers to interact through events without direct references. With multicast publish/subscribe functionality, multiple publishers can raise the same event, and multiple subscribers can listen to it, enabling flexible and efficient communication. + prism;wpf;xamarin;dotnet maui;maui;uno;unoplatform;events From 9476b2a431f689968625746b41b6f35bb1e145d1 Mon Sep 17 00:00:00 2001 From: Dan Siegel Date: Thu, 18 May 2023 11:32:49 -0600 Subject: [PATCH 3/4] chore: adding extra tags --- src/Prism.Events/Prism.Events.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Prism.Events/Prism.Events.csproj b/src/Prism.Events/Prism.Events.csproj index 2613f8444f..a3f0d99ee5 100644 --- a/src/Prism.Events/Prism.Events.csproj +++ b/src/Prism.Events/Prism.Events.csproj @@ -5,7 +5,7 @@ Prism.Events is a library that facilitates communication between loosely coupled components in an application. It provides an event aggregator service that allows publishers and subscribers to interact through events without direct references. With multicast publish/subscribe functionality, multiple publishers can raise the same event, and multiple subscribers can listen to it, enabling flexible and efficient communication. - prism;wpf;xamarin;dotnet maui;maui;uno;unoplatform;events + prism;wpf;xamarin;dotnet maui;maui;uno;unoplatform;events;event aggregator;ieventaggregator;pubsubevent From 90063eab60b756ca7a819c995dcb04147dd78e41 Mon Sep 17 00:00:00 2001 From: Dan Siegel Date: Thu, 18 May 2023 11:38:52 -0600 Subject: [PATCH 4/4] chore: migrate resource strings --- .../Properties/Resources.Designer.cs | 23 +--- src/Prism.Core/Properties/Resources.resx | 6 - src/Prism.Events/EventSubscription.cs | 2 +- src/Prism.Events/Prism.Events.csproj | 7 +- src/Prism.Events/Properties/AssemblyInfo.cs | 3 + .../Properties/Resources.Designer.cs | 81 +++++++++++ src/Prism.Events/Properties/Resources.resx | 126 ++++++++++++++++++ src/Prism.Events/PubSubEvent.cs | 2 +- 8 files changed, 220 insertions(+), 30 deletions(-) create mode 100644 src/Prism.Events/Properties/AssemblyInfo.cs create mode 100644 src/Prism.Events/Properties/Resources.Designer.cs create mode 100644 src/Prism.Events/Properties/Resources.resx diff --git a/src/Prism.Core/Properties/Resources.Designer.cs b/src/Prism.Core/Properties/Resources.Designer.cs index 4d780329ad..73c1c2683b 100644 --- a/src/Prism.Core/Properties/Resources.Designer.cs +++ b/src/Prism.Core/Properties/Resources.Designer.cs @@ -10,7 +10,6 @@ namespace Prism.Properties { using System; - using System.Reflection; /// @@ -20,7 +19,7 @@ namespace Prism.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -40,7 +39,7 @@ internal Resources() { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Prism.Properties.Resources", typeof(Resources).GetTypeInfo().Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Prism.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; @@ -142,15 +141,6 @@ internal static string DuplicatedModule { } } - /// - /// Looks up a localized string similar to To use the UIThread option for subscribing, the EventAggregator must be constructed on the UI thread.. - /// - internal static string EventAggregatorNotConstructedOnUIThread { - get { - return ResourceManager.GetString("EventAggregatorNotConstructedOnUIThread", resourceCulture); - } - } - /// /// Looks up a localized string similar to An exception occurred while initializing module '{0}'. /// - The exception message was: {2} @@ -186,15 +176,6 @@ internal static string FailedToRetrieveModule { } } - /// - /// Looks up a localized string similar to Invalid Delegate Reference Type Exception. - /// - internal static string InvalidDelegateRerefenceTypeException { - get { - return ResourceManager.GetString("InvalidDelegateRerefenceTypeException", resourceCulture); - } - } - /// /// Looks up a localized string similar to The entity does not contain a property with that name. /// diff --git a/src/Prism.Core/Properties/Resources.resx b/src/Prism.Core/Properties/Resources.resx index f09e113bae..13680eed5a 100644 --- a/src/Prism.Core/Properties/Resources.resx +++ b/src/Prism.Core/Properties/Resources.resx @@ -144,9 +144,6 @@ A duplicated module with name {0} has been found by the loader. - - To use the UIThread option for subscribing, the EventAggregator must be constructed on the UI thread. - An exception occurred while initializing module '{0}'. - The exception message was: {2} @@ -164,9 +161,6 @@ Failed to load type for module {0}. Error was: {1}. - - Invalid Delegate Reference Type Exception - The entity does not contain a property with that name diff --git a/src/Prism.Events/EventSubscription.cs b/src/Prism.Events/EventSubscription.cs index 9cdf0ae9cf..86b6e7f247 100644 --- a/src/Prism.Events/EventSubscription.cs +++ b/src/Prism.Events/EventSubscription.cs @@ -1,6 +1,6 @@ using System; using System.Globalization; -using Prism.Properties; +using Prism.Events.Properties; namespace Prism.Events { diff --git a/src/Prism.Events/Prism.Events.csproj b/src/Prism.Events/Prism.Events.csproj index a3f0d99ee5..1f79b157b9 100644 --- a/src/Prism.Events/Prism.Events.csproj +++ b/src/Prism.Events/Prism.Events.csproj @@ -1,4 +1,4 @@ - + netstandard2.0;net47;net6.0 @@ -8,4 +8,9 @@ prism;wpf;xamarin;dotnet maui;maui;uno;unoplatform;events;event aggregator;ieventaggregator;pubsubevent + + + + + diff --git a/src/Prism.Events/Properties/AssemblyInfo.cs b/src/Prism.Events/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..8c114539a1 --- /dev/null +++ b/src/Prism.Events/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System; + +[assembly: CLSCompliant(true)] diff --git a/src/Prism.Events/Properties/Resources.Designer.cs b/src/Prism.Events/Properties/Resources.Designer.cs new file mode 100644 index 0000000000..cc5581cb5d --- /dev/null +++ b/src/Prism.Events/Properties/Resources.Designer.cs @@ -0,0 +1,81 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Prism.Events.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Prism.Events.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to To use the UIThread option for subscribing, the EventAggregator must be constructed on the UI thread.. + /// + internal static string EventAggregatorNotConstructedOnUIThread { + get { + return ResourceManager.GetString("EventAggregatorNotConstructedOnUIThread", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid Delegate Reference Type Exception. + /// + internal static string InvalidDelegateRerefenceTypeException { + get { + return ResourceManager.GetString("InvalidDelegateRerefenceTypeException", resourceCulture); + } + } + } +} diff --git a/src/Prism.Events/Properties/Resources.resx b/src/Prism.Events/Properties/Resources.resx new file mode 100644 index 0000000000..772e08c167 --- /dev/null +++ b/src/Prism.Events/Properties/Resources.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + To use the UIThread option for subscribing, the EventAggregator must be constructed on the UI thread. + + + Invalid Delegate Reference Type Exception + + \ No newline at end of file diff --git a/src/Prism.Events/PubSubEvent.cs b/src/Prism.Events/PubSubEvent.cs index 22b0b53e3f..0a1312805e 100644 --- a/src/Prism.Events/PubSubEvent.cs +++ b/src/Prism.Events/PubSubEvent.cs @@ -1,6 +1,6 @@ using System; using System.Linq; -using Prism.Properties; +using Prism.Events.Properties; namespace Prism.Events {