From f4103674d9f592712f46df7e18b3e43490f6a9e8 Mon Sep 17 00:00:00 2001 From: EffanByte <94035974+EffanByte@users.noreply.github.com> Date: Thu, 26 Jun 2025 12:17:54 +0500 Subject: [PATCH 01/12] Fix: Revamped Package to standard package structure --- .../{modules => Editor}/MockMode.meta | 0 .../MockMode/BrowserMode.meta | 0 .../BrowserMode/BrowserMockPlayerService.cs | 0 .../BrowserMockPlayerService.cs.meta | 0 .../MockMode/BrowserMode/BrowserMockRPC.cs | 0 .../BrowserMode/BrowserMockRPC.cs.meta | 0 .../BrowserMode/BrowserMockService.cs | 0 .../BrowserMode/BrowserMockService.cs.meta | 0 .../BrowserMode/PlayroomMockBrowserBridge.js | 0 .../PlayroomMockBrowserBridge.js.meta | 0 .../MockMode/CallBacksHandlerMock.cs | 0 .../MockMode/CallBacksHandlerMock.cs.meta | 0 .../MockMode/LocalPlayroomService.cs | 0 .../MockMode/LocalPlayroomService.cs.meta | 0 .../MockMode/MockCallbackInvoker.cs | 0 .../MockMode/MockCallbackInvoker.cs.meta | 0 Assets/PlayroomKit/{ => Editor}/Prefabs.meta | 0 .../Prefabs/PlayroomConsole.prefab | 0 .../Prefabs/PlayroomConsole.prefab.meta | 0 .../Prefabs/PlayroomMockManager.prefab | 2 +- .../Prefabs/PlayroomMockManager.prefab.meta | 0 .../{ => Editor}/dependencies.meta | 0 .../dependencies/Castle.Core.5.1.1.meta | 0 ...L - Apache Software Foundation License.txt | 0 ...pache Software Foundation License.txt.meta | 0 .../Castle.Core.5.1.1/CHANGELOG.md | 0 .../Castle.Core.5.1.1/CHANGELOG.md.meta | 0 .../Castle.Core.5.1.1/Castle.Core.nuspec | 64 +- .../Castle.Core.5.1.1/Castle.Core.nuspec.meta | 0 .../dependencies/Castle.Core.5.1.1/LICENSE | 0 .../Castle.Core.5.1.1/LICENSE.meta | 0 .../Castle.Core.5.1.1/castle-logo.png | Bin .../Castle.Core.5.1.1/castle-logo.png.meta | 0 .../dependencies/Castle.Core.5.1.1/lib.meta | 0 .../Castle.Core.5.1.1/lib/netstandard2.1.meta | 0 .../lib/netstandard2.1/Castle.Core.dll | Bin 0 -> 279040 bytes .../lib/netstandard2.1/Castle.Core.dll.meta | 16 +- .../lib/netstandard2.1/Castle.Core.xml | 11639 ++++++++-------- .../lib/netstandard2.1/Castle.Core.xml.meta | 0 .../dependencies/Castle.Core.5.1.1/readme.txt | 0 .../Castle.Core.5.1.1/readme.txt.meta | 0 .../dependencies/NSubstitute.5.1.0.meta | 0 .../NSubstitute.5.1.0/NSubstitute.nuspec | 52 +- .../NSubstitute.5.1.0/NSubstitute.nuspec.meta | 0 .../dependencies/NSubstitute.5.1.0/icon.png | Bin .../NSubstitute.5.1.0/icon.png.meta | 0 .../dependencies/NSubstitute.5.1.0/lib.meta | 0 .../NSubstitute.5.1.0/lib/netstandard2.0.meta | 0 .../lib/netstandard2.0/NSubstitute.dll | Bin .../lib/netstandard2.0/NSubstitute.dll.meta | 0 .../lib/netstandard2.0/NSubstitute.xml | 2820 ++-- .../lib/netstandard2.0/NSubstitute.xml.meta | 0 .../{ => Editor}/dependencies/ParrelSync.meta | 0 .../dependencies/ParrelSync/Editor.meta | 0 .../ParrelSync/Editor/AssetModBlock.meta | 0 .../Editor/AssetModBlock/EditorQuit.cs | 0 .../Editor/AssetModBlock/EditorQuit.cs.meta | 0 .../ParrelSyncAssetModificationProcessor.cs | 0 ...rrelSyncAssetModificationProcessor.cs.meta | 0 .../ParrelSync/Editor/ClonesManager.cs | 0 .../ParrelSync/Editor/ClonesManager.cs.meta | 0 .../ParrelSync/Editor/ClonesManagerWindow.cs | 0 .../Editor/ClonesManagerWindow.cs.meta | 0 .../ParrelSync/Editor/ExternalLinks.cs | 0 .../ParrelSync/Editor/ExternalLinks.cs.meta | 0 .../ParrelSync/Editor/FileUtilities.cs | 0 .../ParrelSync/Editor/FileUtilities.cs.meta | 0 .../ParrelSync/Editor/NonCore.meta | 0 .../Editor/NonCore/AskFeedbackDialog.cs | 0 .../Editor/NonCore/AskFeedbackDialog.cs.meta | 0 .../Editor/NonCore/OtherMenuItem.cs | 0 .../Editor/NonCore/OtherMenuItem.cs.meta | 0 .../Editor/ParrelSyncProjectSettings.cs | 0 .../Editor/ParrelSyncProjectSettings.cs.meta | 0 .../ParrelSync/Editor/Preferences.cs | 0 .../ParrelSync/Editor/Preferences.cs.meta | 0 .../dependencies/ParrelSync/Editor/Project.cs | 0 .../ParrelSync/Editor/Project.cs.meta | 0 .../ParrelSync/Editor/UpdateChecker.cs | 0 .../ParrelSync/Editor/UpdateChecker.cs.meta | 0 .../Editor/ValidateCopiedFoldersIntegrity.cs | 0 .../ValidateCopiedFoldersIntegrity.cs.meta | 0 .../dependencies/ParrelSync/Plugins.meta | 0 .../ParrelSync/Plugins/ParrelSync.meta | 0 .../Plugins/ParrelSync/ScriptableObjects.meta | 0 .../ParrelSyncProjectSettings.asset | 0 .../ParrelSyncProjectSettings.asset.meta | 0 .../dependencies/ParrelSync/package.json | 0 .../dependencies/ParrelSync/package.json.meta | 0 .../ParrelSync/projectCloner.asmdef | 0 .../ParrelSync/projectCloner.asmdef.meta | 0 .../dependencies/PowerConsole.meta | 0 .../PowerConsole/CommandArgument.cs | 0 .../PowerConsole/CommandArgument.cs.meta | 0 .../PowerConsole/CommandCallback.cs | 0 .../PowerConsole/CommandCallback.cs.meta | 0 .../PowerConsole/CommandEnteredEventArgs.cs | 0 .../CommandEnteredEventArgs.cs.meta | 0 .../PowerConsole/ConsoleColours.cs | 0 .../PowerConsole/ConsoleColours.cs.meta | 0 .../PowerConsole/ConsoleConfig.cs | 0 .../PowerConsole/ConsoleConfig.cs.meta | 0 .../PowerConsole/ConsolePosition.cs | 0 .../PowerConsole/ConsolePosition.cs.meta | 0 .../dependencies/PowerConsole/Core.meta | 0 .../PowerConsole/Core/CanvasController.cs | 0 .../Core/CanvasController.cs.meta | 0 .../PowerConsole/Core/ConsoleController.cs | 0 .../Core/ConsoleController.cs.meta | 0 .../PowerConsole/CustomCommand.cs | 0 .../PowerConsole/CustomCommand.cs.meta | 0 .../dependencies/PowerConsole/Example.meta | 0 .../PowerConsole/Example/ExampleScene.unity | 0 .../Example/ExampleScene.unity.meta | 0 .../Example/ExampleSceneManagerController.cs | 0 .../ExampleSceneManagerController.cs.meta | 0 .../dependencies/PowerConsole/LogLevel.cs | 0 .../PowerConsole/LogLevel.cs.meta | 0 .../dependencies/PowerConsole/PowerConsole.cs | 0 .../PowerConsole/PowerConsole.cs.meta | 0 .../dependencies/PowerConsole/Prefabs.meta | 0 .../PowerConsole/Prefabs/PowerConsole.prefab | 0 .../Prefabs/PowerConsole.prefab.meta | 0 .../dependencies/PowerConsole/readme.txt | 0 .../dependencies/PowerConsole/readme.txt.meta | 0 .../System.Diagnostics.EventLog.4.7.0.meta | 0 .../LICENSE.TXT | 46 +- .../LICENSE.TXT.meta | 0 .../System.Diagnostics.EventLog.nuspec | 96 +- .../System.Diagnostics.EventLog.nuspec.meta | 0 .../THIRD-PARTY-NOTICES.TXT | 750 +- .../THIRD-PARTY-NOTICES.TXT.meta | 0 .../lib.meta | 0 .../lib/netstandard2.0.meta | 0 .../System.Diagnostics.EventLog.dll | Bin .../System.Diagnostics.EventLog.dll.meta | 0 .../System.Diagnostics.EventLog.xml | 4046 +++--- .../System.Diagnostics.EventLog.xml.meta | 0 .../useSharedDesignerContext.txt | 0 .../useSharedDesignerContext.txt.meta | 0 .../version.txt | 2 +- .../version.txt.meta | 0 ...stem.Security.Principal.Windows.4.7.0.meta | 0 .../LICENSE.TXT | 46 +- .../LICENSE.TXT.meta | 0 .../System.Security.Principal.Windows.nuspec | 130 +- ...tem.Security.Principal.Windows.nuspec.meta | 0 .../THIRD-PARTY-NOTICES.TXT | 750 +- .../THIRD-PARTY-NOTICES.TXT.meta | 0 .../lib.meta | 0 .../lib/netstandard2.0.meta | 0 .../System.Security.Principal.Windows.dll | Bin ...System.Security.Principal.Windows.dll.meta | 0 .../System.Security.Principal.Windows.xml | 2056 +-- ...System.Security.Principal.Windows.xml.meta | 0 .../useSharedDesignerContext.txt | 0 .../useSharedDesignerContext.txt.meta | 0 .../version.txt | 2 +- .../version.txt.meta | 0 .../dependencies/UnityBrowserBridge.meta | 0 .../UnityBrowserBridge/Plugins.meta | 0 .../Plugins/SeleniumLicense.txt | 0 .../Plugins/SeleniumLicense.txt.meta | 0 .../UnityBrowserBridge/Plugins/WebDriver.dll | Bin .../Plugins/WebDriver.dll.meta | 0 .../UnityBrowserBridge/Prefabs.meta | 0 .../Prefabs/UnityBrowserBridge.prefab | 0 .../Prefabs/UnityBrowserBridge.prefab.meta | 0 .../UnityBrowserBridge/Resources.meta | 0 .../UnityBrowserBridge/Resources/delete.png | Bin .../Resources/delete.png.meta | 0 .../UnityBrowserBridge/Resources/favicon.ico | Bin .../Resources/favicon.ico.meta | 0 .../UnityBrowserBridge/Resources/index.html | 0 .../Resources/index.html.meta | 0 .../UnityBrowserBridge/Resources/style.css | 0 .../Resources/style.css.meta | 0 .../UnityBrowserBridge/Resources/ubb_logo.png | Bin .../Resources/ubb_logo.png.meta | 0 .../Resources/unitybrowserbridge.js | 0 .../Resources/unitybrowserbridge.js.meta | 0 .../UnityBrowserBridge/Scripts.meta | 0 .../UnityBrowserBridge/Scripts/HttpServer.cs | 0 .../Scripts/HttpServer.cs.meta | 0 .../Scripts/UnityBrowserBridge.cs | 6 +- .../Scripts/UnityBrowserBridge.cs.meta | 0 Assets/PlayroomKit/Editor/node_modules.meta | 8 + Assets/PlayroomKit/Editor/package.json | 23 + Assets/PlayroomKit/Editor/package.json.meta | 7 + Assets/PlayroomKit/{ => Editor}/src.meta | 0 .../{ => Editor}/src/frameworks.js | 0 .../{ => Editor}/src/frameworks.js.meta | 0 Assets/PlayroomKit/{ => Editor}/src/index.js | 0 .../{ => Editor}/src/index.js.meta | 0 .../PlayroomKit/{ => Editor}/vite.config.js | 2 +- .../{ => Editor}/vite.config.js.meta | 0 Assets/PlayroomKit/Examples/Scenes.meta | 8 + .../Examples/{ => Scenes}/2d-platformer.meta | 2 +- .../2d-platformer/2d-platformer.unity | 0 .../2d-platformer/2d-platformer.unity.meta | 0 .../{ => Scenes}/2d-platformer/fonts.meta | 0 .../fonts/LiberationSans SDF.asset | 0 .../fonts/LiberationSans SDF.asset.meta | 0 .../{ => Scenes}/2d-platformer/prefabs.meta | 0 .../2d-platformer/prefabs/Bullet.prefab | 0 .../2d-platformer/prefabs/Bullet.prefab.meta | 0 .../2d-platformer/prefabs/Player.prefab | 0 .../2d-platformer/prefabs/Player.prefab.meta | 0 .../{ => Scenes}/2d-platformer/scripts.meta | 0 .../2d-platformer/scripts/GameManager2d.cs | 0 .../scripts/GameManager2d.cs.meta | 0 .../scripts/PlayerController2d.cs | 0 .../scripts/PlayerController2d.cs.meta | 0 .../{ => Scenes}/2d-platformer/sprites.meta | 0 .../2d-platformer/sprites/Circle.png | Bin .../2d-platformer/sprites/Circle.png.meta | 0 .../2d-platformer/sprites/Square.png | Bin .../2d-platformer/sprites/Square.png.meta | 0 .../{ => Scenes}/discord-activity.meta | 0 .../{ => Scenes}/discord-activity/Models.meta | 0 .../discord-activity/Models/Hat.fbx | Bin .../discord-activity/Models/Hat.fbx.meta | 0 .../discord-activity/discord-activity.unity | 0 .../discord-activity.unity.meta | 0 .../discord-activity/materials.meta | 0 .../discord-activity/materials/Base.mat | 0 .../discord-activity/materials/Base.mat.meta | 0 .../discord-activity/materials/player.mat | 0 .../materials/player.mat.meta | 0 .../discord-activity/prefabs.meta | 0 .../discord-activity/prefabs/Bean.prefab | 0 .../discord-activity/prefabs/Bean.prefab.meta | 0 .../discord-activity/prefabs/Ground.prefab | 0 .../prefabs/Ground.prefab.meta | 0 .../{ => Scenes}/discord-activity/readme.md | 0 .../discord-activity/readme.md.meta | 0 .../discord-activity/scripts.meta | 0 .../scripts/GameManagerIsometric.cs | 0 .../scripts/GameManagerIsometric.cs.meta | 0 .../scripts/IsometricPlayerController.cs | 0 .../scripts/IsometricPlayerController.cs.meta | 0 .../{ => Scenes}/package-showcase.meta | 0 .../package-showcase/materials.meta | 0 .../package-showcase/materials/Base.mat | 0 .../package-showcase/materials/Base.mat.meta | 0 .../package-showcase/materials/player.mat | 0 .../materials/player.mat.meta | 0 .../{ => Scenes}/package-showcase/models.meta | 0 .../package-showcase/models/Hat.fbx | Bin .../package-showcase/models/Hat.fbx.meta | 0 .../package-showcase/prefabs.meta | 0 .../package-showcase/prefabs/BeanDemo.prefab | 0 .../prefabs/BeanDemo.prefab.meta | 0 .../package-showcase/prefabs/Black.mat | 0 .../package-showcase/prefabs/Black.mat.meta | 0 .../package-showcase/prefabs/Bullet.prefab | 0 .../prefabs/Bullet.prefab.meta | 0 .../package-showcase/prefabs/Ground.prefab | 0 .../prefabs/Ground.prefab.meta | 0 .../package-showcase/scripts.meta | 0 .../scripts/GameManagerDemo.cs | 0 .../scripts/GameManagerDemo.cs.meta | 0 .../package-showcase/scripts/Laser.cs | 0 .../package-showcase/scripts/Laser.cs.meta | 0 .../scripts/PlayerController.cs | 0 .../scripts/PlayerController.cs.meta | 0 .../package-showcase/showcase.unity | 0 .../package-showcase/showcase.unity.meta | 0 Assets/PlayroomKit/Runtime.meta | 8 + Assets/PlayroomKit/Runtime/dependencies.meta | 8 + .../dependencies/SimpleJSON.meta | 0 .../dependencies/SimpleJSON/Changelog.txt | 0 .../SimpleJSON/Changelog.txt.meta | 0 .../dependencies/SimpleJSON/LICENSE | 0 .../dependencies/SimpleJSON/LICENSE.meta | 0 .../dependencies/SimpleJSON/README | 0 .../dependencies/SimpleJSON/README.meta | 0 .../dependencies/SimpleJSON/SimpleJSON.cs | 0 .../SimpleJSON/SimpleJSON.cs.meta | 0 .../SimpleJSON/SimpleJSONBinary.cs | 0 .../SimpleJSON/SimpleJSONBinary.cs.meta | 0 .../SimpleJSON/SimpleJSONDotNetTypes.cs | 0 .../SimpleJSON/SimpleJSONDotNetTypes.cs.meta | 0 .../SimpleJSON/SimpleJSONUnity.cs | 0 .../SimpleJSON/SimpleJSONUnity.cs.meta | 0 .../{ => Runtime}/dependencies/fonts.meta | 0 .../fonts/JetBrainsMono-Medium SDF.asset | 0 .../fonts/JetBrainsMono-Medium SDF.asset.meta | 0 .../fonts/JetBrainsMono-Medium.ttf | Bin .../fonts/JetBrainsMono-Medium.ttf.meta | 0 Assets/PlayroomKit/{ => Runtime}/modules.meta | 0 .../{ => Runtime}/modules/Discord.meta | 0 .../modules/Discord/DiscordEntitlement.cs | 0 .../Discord/DiscordEntitlement.cs.meta | 0 .../modules/Discord/DiscordSkus.cs | 0 .../modules/Discord/DiscordSkus.cs.meta | 0 .../modules/Discord/SDKEvents.cs | 0 .../modules/Discord/SDKEvents.cs.meta | 0 .../{ => Runtime}/modules/Headers.cs | 0 .../{ => Runtime}/modules/Headers.cs.meta | 0 .../{ => Runtime}/modules/Helpers.meta | 0 .../modules/Helpers/CallbackManager.cs | 0 .../modules/Helpers/CallbackManager.cs.meta | 0 .../modules/Helpers/CommandManager.cs | 1 - .../modules/Helpers/CommandManager.cs.meta | 0 .../modules/Helpers/DebugLogger.cs | 0 .../modules/Helpers/DebugLogger.cs.meta | 0 .../{ => Runtime}/modules/Helpers/Helpers.cs | 0 .../modules/Helpers/Helpers.cs.meta | 0 .../modules/Helpers/InternalFunctions.meta | 0 .../InternalFunctions/IInternalFunctions.cs | 0 .../IInternalFunctions.cs.meta | 0 .../InternalFunctions/InterlopWrapper.cs | 0 .../InternalFunctions/InterlopWrapper.cs.meta | 0 .../{ => Runtime}/modules/Helpers/TurnData.cs | 0 .../modules/Helpers/TurnData.cs.meta | 0 .../{ => Runtime}/modules/Interfaces.meta | 0 .../modules/Interfaces/IPlayerBase.cs | 0 .../modules/Interfaces/IPlayerBase.cs.meta | 0 .../modules/Interfaces/IPlayroomBase.cs | 0 .../modules/Interfaces/IPlayroomBase.cs.meta | 0 .../Interfaces/IPlayroomBuildExtensions.cs | 0 .../IPlayroomBuildExtensions.cs.meta | 0 .../{ => Runtime}/modules/Interfaces/IRPC.cs | 0 .../modules/Interfaces/IRPC.cs.meta | 0 .../{ => Runtime}/modules/Options.meta | 0 .../modules/Options/ButtonOptions.cs | 0 .../modules/Options/ButtonOptions.cs.meta | 0 .../{ => Runtime}/modules/Options/Dpad.cs | 0 .../modules/Options/Dpad.cs.meta | 0 .../modules/Options/InitOptions.cs | 0 .../modules/Options/InitOptions.cs.meta | 0 .../modules/Options/JoystickOptions.cs | 0 .../modules/Options/JoystickOptions.cs.meta | 0 .../modules/Options/MatchMakingOptions.cs | 0 .../Options/MatchMakingOptions.cs.meta | 0 .../modules/Options/TurnBasedOptions.cs | 0 .../modules/Options/TurnBasedOptions.cs.meta | 0 .../modules/Options/ZoneOptions.cs | 0 .../modules/Options/ZoneOptions.cs.meta | 0 .../{ => Runtime}/modules/Player.meta | 0 .../modules/Player/LocalPlayerService.cs | 0 .../modules/Player/LocalPlayerService.cs.meta | 0 .../{ => Runtime}/modules/Player/Player.cs | 0 .../modules/Player/Player.cs.meta | 0 .../modules/Player/PlayerService.cs | 0 .../modules/Player/PlayerService.cs.meta | 0 .../modules/PlayroomBuildService.cs | 0 .../modules/PlayroomBuildService.cs.meta | 0 .../modules/PlayroomkitDevManager.cs | 0 .../modules/PlayroomkitDevManager.cs.meta | 0 .../{ => Runtime}/modules/RPC.meta | 0 .../{ => Runtime}/modules/RPC/RPC.cs | 0 .../{ => Runtime}/modules/RPC/RPC.cs.meta | 0 .../{ => Runtime}/modules/RPC/RPCLocal.cs | 0 .../modules/RPC/RPCLocal.cs.meta | 0 .../{ => Runtime}/modules/Store.meta | 0 .../modules/Store/PlayerEntitlements.cs | 0 .../modules/Store/PlayerEntitlements.cs.meta | 0 .../{ => Runtime}/modules/Store/SKU.cs | 0 .../{ => Runtime}/modules/Store/SKU.cs.meta | 0 .../Castle.Core.5.1.1/.signature.p7s | Bin 11527 -> 0 bytes .../lib/netstandard2.1/Castle.Core.dll | Bin 382976 -> 0 bytes .../NSubstitute.5.1.0/.signature.p7s | Bin 11556 -> 0 bytes .../.signature.p7s | Bin 18704 -> 0 bytes .../.signature.p7s | Bin 18702 -> 0 bytes Assets/PlayroomKit/package.json | 33 +- Assets/PlayroomKit/package.json.meta | 2 +- 368 files changed, 11264 insertions(+), 11361 deletions(-) rename Assets/PlayroomKit/{modules => Editor}/MockMode.meta (100%) rename Assets/PlayroomKit/{modules => Editor}/MockMode/BrowserMode.meta (100%) rename Assets/PlayroomKit/{modules => Editor}/MockMode/BrowserMode/BrowserMockPlayerService.cs (100%) rename Assets/PlayroomKit/{modules => Editor}/MockMode/BrowserMode/BrowserMockPlayerService.cs.meta (100%) rename Assets/PlayroomKit/{modules => Editor}/MockMode/BrowserMode/BrowserMockRPC.cs (100%) rename Assets/PlayroomKit/{modules => Editor}/MockMode/BrowserMode/BrowserMockRPC.cs.meta (100%) rename Assets/PlayroomKit/{modules => Editor}/MockMode/BrowserMode/BrowserMockService.cs (100%) rename Assets/PlayroomKit/{modules => Editor}/MockMode/BrowserMode/BrowserMockService.cs.meta (100%) rename Assets/PlayroomKit/{modules => Editor}/MockMode/BrowserMode/PlayroomMockBrowserBridge.js (100%) rename Assets/PlayroomKit/{modules => Editor}/MockMode/BrowserMode/PlayroomMockBrowserBridge.js.meta (100%) rename Assets/PlayroomKit/{modules => Editor}/MockMode/CallBacksHandlerMock.cs (100%) rename Assets/PlayroomKit/{modules => Editor}/MockMode/CallBacksHandlerMock.cs.meta (100%) rename Assets/PlayroomKit/{modules => Editor}/MockMode/LocalPlayroomService.cs (100%) rename Assets/PlayroomKit/{modules => Editor}/MockMode/LocalPlayroomService.cs.meta (100%) rename Assets/PlayroomKit/{modules => Editor}/MockMode/MockCallbackInvoker.cs (100%) rename Assets/PlayroomKit/{modules => Editor}/MockMode/MockCallbackInvoker.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/Prefabs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/Prefabs/PlayroomConsole.prefab (100%) rename Assets/PlayroomKit/{ => Editor}/Prefabs/PlayroomConsole.prefab.meta (100%) rename Assets/PlayroomKit/{ => Editor}/Prefabs/PlayroomMockManager.prefab (99%) rename Assets/PlayroomKit/{ => Editor}/Prefabs/PlayroomMockManager.prefab.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/CHANGELOG.md (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/CHANGELOG.md.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec (98%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/LICENSE (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/LICENSE.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/castle-logo.png (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/castle-logo.png.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/lib.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/lib/netstandard2.1.meta (100%) create mode 100644 Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll.meta (63%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml (95%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/readme.txt (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/Castle.Core.5.1.1/readme.txt.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/NSubstitute.5.1.0.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec (98%) rename Assets/PlayroomKit/{ => Editor}/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/NSubstitute.5.1.0/icon.png (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/NSubstitute.5.1.0/icon.png.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/NSubstitute.5.1.0/lib.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/NSubstitute.5.1.0/lib/netstandard2.0.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml (98%) rename Assets/PlayroomKit/{ => Editor}/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/AssetModBlock.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/AssetModBlock/EditorQuit.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/AssetModBlock/EditorQuit.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/ClonesManager.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/ClonesManager.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/ClonesManagerWindow.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/ClonesManagerWindow.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/ExternalLinks.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/ExternalLinks.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/FileUtilities.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/FileUtilities.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/NonCore.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/NonCore/OtherMenuItem.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/NonCore/OtherMenuItem.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/ParrelSyncProjectSettings.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/ParrelSyncProjectSettings.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/Preferences.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/Preferences.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/Project.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/Project.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/UpdateChecker.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/UpdateChecker.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Plugins.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Plugins/ParrelSync.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/package.json (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/package.json.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/projectCloner.asmdef (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/ParrelSync/projectCloner.asmdef.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/CommandArgument.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/CommandArgument.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/CommandCallback.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/CommandCallback.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/CommandEnteredEventArgs.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/CommandEnteredEventArgs.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/ConsoleColours.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/ConsoleColours.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/ConsoleConfig.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/ConsoleConfig.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/ConsolePosition.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/ConsolePosition.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/Core.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/Core/CanvasController.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/Core/CanvasController.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/Core/ConsoleController.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/Core/ConsoleController.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/CustomCommand.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/CustomCommand.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/Example.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/Example/ExampleScene.unity (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/Example/ExampleScene.unity.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/Example/ExampleSceneManagerController.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/Example/ExampleSceneManagerController.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/LogLevel.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/LogLevel.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/PowerConsole.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/PowerConsole.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/Prefabs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/Prefabs/PowerConsole.prefab (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/Prefabs/PowerConsole.prefab.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/readme.txt (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/PowerConsole/readme.txt.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0/LICENSE.TXT (97%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0/LICENSE.TXT.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0/System.Diagnostics.EventLog.nuspec (98%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0/System.Diagnostics.EventLog.nuspec.meta (100%) rename Assets/PlayroomKit/{dependencies/System.Security.Principal.Windows.4.7.0 => Editor/dependencies/System.Diagnostics.EventLog.4.7.0}/THIRD-PARTY-NOTICES.TXT (98%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0/THIRD-PARTY-NOTICES.TXT.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0/lib.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.dll (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.dll.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.xml (98%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.xml.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0/useSharedDesignerContext.txt (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0/useSharedDesignerContext.txt.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0/version.txt (97%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Diagnostics.EventLog.4.7.0/version.txt.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0/LICENSE.TXT (97%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0/LICENSE.TXT.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0/System.Security.Principal.Windows.nuspec (98%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0/System.Security.Principal.Windows.nuspec.meta (100%) rename Assets/PlayroomKit/{dependencies/System.Diagnostics.EventLog.4.7.0 => Editor/dependencies/System.Security.Principal.Windows.4.7.0}/THIRD-PARTY-NOTICES.TXT (98%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0/THIRD-PARTY-NOTICES.TXT.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0/lib.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.dll (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.dll.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.xml (98%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.xml.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0/useSharedDesignerContext.txt (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0/useSharedDesignerContext.txt.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0/version.txt (97%) rename Assets/PlayroomKit/{ => Editor}/dependencies/System.Security.Principal.Windows.4.7.0/version.txt.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Plugins.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Plugins/SeleniumLicense.txt (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Plugins/SeleniumLicense.txt.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Plugins/WebDriver.dll (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Plugins/WebDriver.dll.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Prefabs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Prefabs/UnityBrowserBridge.prefab (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Prefabs/UnityBrowserBridge.prefab.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Resources.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Resources/delete.png (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Resources/delete.png.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Resources/favicon.ico (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Resources/favicon.ico.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Resources/index.html (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Resources/index.html.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Resources/style.css (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Resources/style.css.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Resources/ubb_logo.png (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Resources/ubb_logo.png.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Resources/unitybrowserbridge.js (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Resources/unitybrowserbridge.js.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Scripts.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Scripts/HttpServer.cs (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Scripts/HttpServer.cs.meta (100%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Scripts/UnityBrowserBridge.cs (99%) rename Assets/PlayroomKit/{ => Editor}/dependencies/UnityBrowserBridge/Scripts/UnityBrowserBridge.cs.meta (100%) create mode 100644 Assets/PlayroomKit/Editor/node_modules.meta create mode 100644 Assets/PlayroomKit/Editor/package.json create mode 100644 Assets/PlayroomKit/Editor/package.json.meta rename Assets/PlayroomKit/{ => Editor}/src.meta (100%) rename Assets/PlayroomKit/{ => Editor}/src/frameworks.js (100%) rename Assets/PlayroomKit/{ => Editor}/src/frameworks.js.meta (100%) rename Assets/PlayroomKit/{ => Editor}/src/index.js (100%) rename Assets/PlayroomKit/{ => Editor}/src/index.js.meta (100%) rename Assets/PlayroomKit/{ => Editor}/vite.config.js (94%) rename Assets/PlayroomKit/{ => Editor}/vite.config.js.meta (100%) create mode 100644 Assets/PlayroomKit/Examples/Scenes.meta rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer.meta (77%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/2d-platformer.unity (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/2d-platformer.unity.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/fonts.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/fonts/LiberationSans SDF.asset (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/fonts/LiberationSans SDF.asset.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/prefabs.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/prefabs/Bullet.prefab (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/prefabs/Bullet.prefab.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/prefabs/Player.prefab (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/prefabs/Player.prefab.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/scripts.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/scripts/GameManager2d.cs (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/scripts/GameManager2d.cs.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/scripts/PlayerController2d.cs (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/scripts/PlayerController2d.cs.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/sprites.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/sprites/Circle.png (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/sprites/Circle.png.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/sprites/Square.png (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/2d-platformer/sprites/Square.png.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/Models.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/Models/Hat.fbx (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/Models/Hat.fbx.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/discord-activity.unity (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/discord-activity.unity.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/materials.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/materials/Base.mat (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/materials/Base.mat.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/materials/player.mat (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/materials/player.mat.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/prefabs.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/prefabs/Bean.prefab (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/prefabs/Bean.prefab.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/prefabs/Ground.prefab (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/prefabs/Ground.prefab.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/readme.md (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/readme.md.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/scripts.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/scripts/GameManagerIsometric.cs (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/scripts/GameManagerIsometric.cs.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/scripts/IsometricPlayerController.cs (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/discord-activity/scripts/IsometricPlayerController.cs.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/materials.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/materials/Base.mat (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/materials/Base.mat.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/materials/player.mat (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/materials/player.mat.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/models.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/models/Hat.fbx (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/models/Hat.fbx.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/prefabs.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/prefabs/BeanDemo.prefab (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/prefabs/BeanDemo.prefab.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/prefabs/Black.mat (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/prefabs/Black.mat.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/prefabs/Bullet.prefab (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/prefabs/Bullet.prefab.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/prefabs/Ground.prefab (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/prefabs/Ground.prefab.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/scripts.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/scripts/GameManagerDemo.cs (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/scripts/GameManagerDemo.cs.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/scripts/Laser.cs (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/scripts/Laser.cs.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/scripts/PlayerController.cs (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/scripts/PlayerController.cs.meta (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/showcase.unity (100%) rename Assets/PlayroomKit/Examples/{ => Scenes}/package-showcase/showcase.unity.meta (100%) create mode 100644 Assets/PlayroomKit/Runtime.meta create mode 100644 Assets/PlayroomKit/Runtime/dependencies.meta rename Assets/PlayroomKit/{ => Runtime}/dependencies/SimpleJSON.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/SimpleJSON/Changelog.txt (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/SimpleJSON/Changelog.txt.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/SimpleJSON/LICENSE (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/SimpleJSON/LICENSE.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/SimpleJSON/README (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/SimpleJSON/README.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/SimpleJSON/SimpleJSON.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/SimpleJSON/SimpleJSON.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/SimpleJSON/SimpleJSONBinary.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/SimpleJSON/SimpleJSONBinary.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/SimpleJSON/SimpleJSONDotNetTypes.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/SimpleJSON/SimpleJSONDotNetTypes.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/SimpleJSON/SimpleJSONUnity.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/SimpleJSON/SimpleJSONUnity.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/fonts.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/fonts/JetBrainsMono-Medium SDF.asset (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/fonts/JetBrainsMono-Medium SDF.asset.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/fonts/JetBrainsMono-Medium.ttf (100%) rename Assets/PlayroomKit/{ => Runtime}/dependencies/fonts/JetBrainsMono-Medium.ttf.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Discord.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Discord/DiscordEntitlement.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Discord/DiscordEntitlement.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Discord/DiscordSkus.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Discord/DiscordSkus.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Discord/SDKEvents.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Discord/SDKEvents.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Headers.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Headers.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers/CallbackManager.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers/CallbackManager.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers/CommandManager.cs (99%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers/CommandManager.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers/DebugLogger.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers/DebugLogger.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers/Helpers.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers/Helpers.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers/InternalFunctions.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers/InternalFunctions/IInternalFunctions.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers/InternalFunctions/IInternalFunctions.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers/InternalFunctions/InterlopWrapper.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers/InternalFunctions/InterlopWrapper.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers/TurnData.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Helpers/TurnData.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Interfaces.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Interfaces/IPlayerBase.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Interfaces/IPlayerBase.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Interfaces/IPlayroomBase.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Interfaces/IPlayroomBase.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Interfaces/IPlayroomBuildExtensions.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Interfaces/IPlayroomBuildExtensions.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Interfaces/IRPC.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Interfaces/IRPC.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Options.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Options/ButtonOptions.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Options/ButtonOptions.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Options/Dpad.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Options/Dpad.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Options/InitOptions.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Options/InitOptions.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Options/JoystickOptions.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Options/JoystickOptions.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Options/MatchMakingOptions.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Options/MatchMakingOptions.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Options/TurnBasedOptions.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Options/TurnBasedOptions.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Options/ZoneOptions.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Options/ZoneOptions.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Player.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Player/LocalPlayerService.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Player/LocalPlayerService.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Player/Player.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Player/Player.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Player/PlayerService.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Player/PlayerService.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/PlayroomBuildService.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/PlayroomBuildService.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/PlayroomkitDevManager.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/PlayroomkitDevManager.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/RPC.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/RPC/RPC.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/RPC/RPC.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/RPC/RPCLocal.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/RPC/RPCLocal.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Store.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Store/PlayerEntitlements.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Store/PlayerEntitlements.cs.meta (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Store/SKU.cs (100%) rename Assets/PlayroomKit/{ => Runtime}/modules/Store/SKU.cs.meta (100%) delete mode 100644 Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/.signature.p7s delete mode 100644 Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll delete mode 100644 Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/.signature.p7s delete mode 100644 Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/.signature.p7s delete mode 100644 Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/.signature.p7s diff --git a/Assets/PlayroomKit/modules/MockMode.meta b/Assets/PlayroomKit/Editor/MockMode.meta similarity index 100% rename from Assets/PlayroomKit/modules/MockMode.meta rename to Assets/PlayroomKit/Editor/MockMode.meta diff --git a/Assets/PlayroomKit/modules/MockMode/BrowserMode.meta b/Assets/PlayroomKit/Editor/MockMode/BrowserMode.meta similarity index 100% rename from Assets/PlayroomKit/modules/MockMode/BrowserMode.meta rename to Assets/PlayroomKit/Editor/MockMode/BrowserMode.meta diff --git a/Assets/PlayroomKit/modules/MockMode/BrowserMode/BrowserMockPlayerService.cs b/Assets/PlayroomKit/Editor/MockMode/BrowserMode/BrowserMockPlayerService.cs similarity index 100% rename from Assets/PlayroomKit/modules/MockMode/BrowserMode/BrowserMockPlayerService.cs rename to Assets/PlayroomKit/Editor/MockMode/BrowserMode/BrowserMockPlayerService.cs diff --git a/Assets/PlayroomKit/modules/MockMode/BrowserMode/BrowserMockPlayerService.cs.meta b/Assets/PlayroomKit/Editor/MockMode/BrowserMode/BrowserMockPlayerService.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/MockMode/BrowserMode/BrowserMockPlayerService.cs.meta rename to Assets/PlayroomKit/Editor/MockMode/BrowserMode/BrowserMockPlayerService.cs.meta diff --git a/Assets/PlayroomKit/modules/MockMode/BrowserMode/BrowserMockRPC.cs b/Assets/PlayroomKit/Editor/MockMode/BrowserMode/BrowserMockRPC.cs similarity index 100% rename from Assets/PlayroomKit/modules/MockMode/BrowserMode/BrowserMockRPC.cs rename to Assets/PlayroomKit/Editor/MockMode/BrowserMode/BrowserMockRPC.cs diff --git a/Assets/PlayroomKit/modules/MockMode/BrowserMode/BrowserMockRPC.cs.meta b/Assets/PlayroomKit/Editor/MockMode/BrowserMode/BrowserMockRPC.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/MockMode/BrowserMode/BrowserMockRPC.cs.meta rename to Assets/PlayroomKit/Editor/MockMode/BrowserMode/BrowserMockRPC.cs.meta diff --git a/Assets/PlayroomKit/modules/MockMode/BrowserMode/BrowserMockService.cs b/Assets/PlayroomKit/Editor/MockMode/BrowserMode/BrowserMockService.cs similarity index 100% rename from Assets/PlayroomKit/modules/MockMode/BrowserMode/BrowserMockService.cs rename to Assets/PlayroomKit/Editor/MockMode/BrowserMode/BrowserMockService.cs diff --git a/Assets/PlayroomKit/modules/MockMode/BrowserMode/BrowserMockService.cs.meta b/Assets/PlayroomKit/Editor/MockMode/BrowserMode/BrowserMockService.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/MockMode/BrowserMode/BrowserMockService.cs.meta rename to Assets/PlayroomKit/Editor/MockMode/BrowserMode/BrowserMockService.cs.meta diff --git a/Assets/PlayroomKit/modules/MockMode/BrowserMode/PlayroomMockBrowserBridge.js b/Assets/PlayroomKit/Editor/MockMode/BrowserMode/PlayroomMockBrowserBridge.js similarity index 100% rename from Assets/PlayroomKit/modules/MockMode/BrowserMode/PlayroomMockBrowserBridge.js rename to Assets/PlayroomKit/Editor/MockMode/BrowserMode/PlayroomMockBrowserBridge.js diff --git a/Assets/PlayroomKit/modules/MockMode/BrowserMode/PlayroomMockBrowserBridge.js.meta b/Assets/PlayroomKit/Editor/MockMode/BrowserMode/PlayroomMockBrowserBridge.js.meta similarity index 100% rename from Assets/PlayroomKit/modules/MockMode/BrowserMode/PlayroomMockBrowserBridge.js.meta rename to Assets/PlayroomKit/Editor/MockMode/BrowserMode/PlayroomMockBrowserBridge.js.meta diff --git a/Assets/PlayroomKit/modules/MockMode/CallBacksHandlerMock.cs b/Assets/PlayroomKit/Editor/MockMode/CallBacksHandlerMock.cs similarity index 100% rename from Assets/PlayroomKit/modules/MockMode/CallBacksHandlerMock.cs rename to Assets/PlayroomKit/Editor/MockMode/CallBacksHandlerMock.cs diff --git a/Assets/PlayroomKit/modules/MockMode/CallBacksHandlerMock.cs.meta b/Assets/PlayroomKit/Editor/MockMode/CallBacksHandlerMock.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/MockMode/CallBacksHandlerMock.cs.meta rename to Assets/PlayroomKit/Editor/MockMode/CallBacksHandlerMock.cs.meta diff --git a/Assets/PlayroomKit/modules/MockMode/LocalPlayroomService.cs b/Assets/PlayroomKit/Editor/MockMode/LocalPlayroomService.cs similarity index 100% rename from Assets/PlayroomKit/modules/MockMode/LocalPlayroomService.cs rename to Assets/PlayroomKit/Editor/MockMode/LocalPlayroomService.cs diff --git a/Assets/PlayroomKit/modules/MockMode/LocalPlayroomService.cs.meta b/Assets/PlayroomKit/Editor/MockMode/LocalPlayroomService.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/MockMode/LocalPlayroomService.cs.meta rename to Assets/PlayroomKit/Editor/MockMode/LocalPlayroomService.cs.meta diff --git a/Assets/PlayroomKit/modules/MockMode/MockCallbackInvoker.cs b/Assets/PlayroomKit/Editor/MockMode/MockCallbackInvoker.cs similarity index 100% rename from Assets/PlayroomKit/modules/MockMode/MockCallbackInvoker.cs rename to Assets/PlayroomKit/Editor/MockMode/MockCallbackInvoker.cs diff --git a/Assets/PlayroomKit/modules/MockMode/MockCallbackInvoker.cs.meta b/Assets/PlayroomKit/Editor/MockMode/MockCallbackInvoker.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/MockMode/MockCallbackInvoker.cs.meta rename to Assets/PlayroomKit/Editor/MockMode/MockCallbackInvoker.cs.meta diff --git a/Assets/PlayroomKit/Prefabs.meta b/Assets/PlayroomKit/Editor/Prefabs.meta similarity index 100% rename from Assets/PlayroomKit/Prefabs.meta rename to Assets/PlayroomKit/Editor/Prefabs.meta diff --git a/Assets/PlayroomKit/Prefabs/PlayroomConsole.prefab b/Assets/PlayroomKit/Editor/Prefabs/PlayroomConsole.prefab similarity index 100% rename from Assets/PlayroomKit/Prefabs/PlayroomConsole.prefab rename to Assets/PlayroomKit/Editor/Prefabs/PlayroomConsole.prefab diff --git a/Assets/PlayroomKit/Prefabs/PlayroomConsole.prefab.meta b/Assets/PlayroomKit/Editor/Prefabs/PlayroomConsole.prefab.meta similarity index 100% rename from Assets/PlayroomKit/Prefabs/PlayroomConsole.prefab.meta rename to Assets/PlayroomKit/Editor/Prefabs/PlayroomConsole.prefab.meta diff --git a/Assets/PlayroomKit/Prefabs/PlayroomMockManager.prefab b/Assets/PlayroomKit/Editor/Prefabs/PlayroomMockManager.prefab similarity index 99% rename from Assets/PlayroomKit/Prefabs/PlayroomMockManager.prefab rename to Assets/PlayroomKit/Editor/Prefabs/PlayroomMockManager.prefab index 1478b30c..1665cd04 100644 --- a/Assets/PlayroomKit/Prefabs/PlayroomMockManager.prefab +++ b/Assets/PlayroomKit/Editor/Prefabs/PlayroomMockManager.prefab @@ -46,7 +46,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 120dfa1b0ad7e96479cb0286e61ad19d, type: 3} m_Name: m_EditorClassIdentifier: - mockMode: 1 + mockMode: 0 insertCoinCaller: {fileID: 0} enableLogs: 0 --- !u!1 &5935941862803782869 diff --git a/Assets/PlayroomKit/Prefabs/PlayroomMockManager.prefab.meta b/Assets/PlayroomKit/Editor/Prefabs/PlayroomMockManager.prefab.meta similarity index 100% rename from Assets/PlayroomKit/Prefabs/PlayroomMockManager.prefab.meta rename to Assets/PlayroomKit/Editor/Prefabs/PlayroomMockManager.prefab.meta diff --git a/Assets/PlayroomKit/dependencies.meta b/Assets/PlayroomKit/Editor/dependencies.meta similarity index 100% rename from Assets/PlayroomKit/dependencies.meta rename to Assets/PlayroomKit/Editor/dependencies.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1.meta b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1.meta rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt.meta b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt.meta rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/CHANGELOG.md b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/CHANGELOG.md similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/CHANGELOG.md rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/CHANGELOG.md diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/CHANGELOG.md.meta b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/CHANGELOG.md.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/CHANGELOG.md.meta rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/CHANGELOG.md.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec similarity index 98% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec index 7dca8144..a2179779 100644 --- a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec +++ b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec @@ -1,33 +1,33 @@ - - - - Castle.Core - 5.1.1 - Castle Project Contributors - Apache-2.0 - https://licenses.nuget.org/Apache-2.0 - castle-logo.png - http://www.castleproject.org/ - http://www.castleproject.org/img/castle-logo.png - Castle Core, including DynamicProxy, Logging Abstractions and DictionaryAdapter - Copyright (c) 2004-2022 Castle Project - http://www.castleproject.org/ - castle dynamicproxy dynamic proxy dynamicproxy2 dictionaryadapter emailsender - - - - - - - - - - - - - - - - - - + + + + Castle.Core + 5.1.1 + Castle Project Contributors + Apache-2.0 + https://licenses.nuget.org/Apache-2.0 + castle-logo.png + http://www.castleproject.org/ + http://www.castleproject.org/img/castle-logo.png + Castle Core, including DynamicProxy, Logging Abstractions and DictionaryAdapter + Copyright (c) 2004-2022 Castle Project - http://www.castleproject.org/ + castle dynamicproxy dynamic proxy dynamicproxy2 dictionaryadapter emailsender + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec.meta b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec.meta rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/LICENSE b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/LICENSE similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/LICENSE rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/LICENSE diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/LICENSE.meta b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/LICENSE.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/LICENSE.meta rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/LICENSE.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/castle-logo.png b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/castle-logo.png similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/castle-logo.png rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/castle-logo.png diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/castle-logo.png.meta b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/castle-logo.png.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/castle-logo.png.meta rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/castle-logo.png.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib.meta b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/lib.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib.meta rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/lib.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1.meta b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/lib/netstandard2.1.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1.meta rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/lib/netstandard2.1.meta diff --git a/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll new file mode 100644 index 0000000000000000000000000000000000000000..42b54274ad9bdf990b22658a9df0bc8101adad65 GIT binary patch literal 279040 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
cq~<8pu{z5?dgAinR!{lffN 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 z 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 literal 0 HcmV?d00001 diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll.meta b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll.meta similarity index 63% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll.meta rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll.meta index cfb9aba0..93c9c8c4 100644 --- a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll.meta +++ b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll.meta @@ -1,7 +1,5 @@ fileFormatVersion: 2 guid: e6c7ad5b154f24410ba9cce5686fdb96 -labels: -- NuGetForUnity PluginImporter: externalObjects: {} serializedVersion: 2 @@ -16,8 +14,20 @@ PluginImporter: - first: Any: second: - enabled: 1 + enabled: 0 settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU userData: assetBundleName: assetBundleVariant: diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml similarity index 95% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml index 98c150f6..ae179283 100644 --- a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml +++ b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml @@ -1,5898 +1,5741 @@ - - - - Castle.Core - - - - - Abstract adapter for the support - needed by the - - - - - Adds an element with the provided key and value to the object. - - The to use as the key of the element to add. - The to use as the value of the element to add. - An element with the same key already exists in the object. - key is null. - The is read-only.-or- The has a fixed size. - - - - Removes all elements from the object. - - The object is read-only. - - - - Determines whether the object contains an element with the specified key. - - The key to locate in the object. - - true if the contains an element with the key; otherwise, false. - - key is null. - - - - Returns an object for the object. - - - An object for the object. - - - - - Gets a value indicating whether the object has a fixed size. - - true if the object has a fixed size; otherwise, false. - - - - Gets a value indicating whether the object is read-only. - - true if the object is read-only; otherwise, false. - - - - Gets an object containing the keys of the object. - - An object containing the keys of the object. - - - - Removes the element with the specified key from the object. - - The key of the element to remove. - The object is read-only.-or- The has a fixed size. - key is null. - - - - Gets an object containing the values in the object. - - An object containing the values in the object. - - - - Gets or sets the with the specified key. - - - - - Copies the elements of the to an , starting at a particular index. - - The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. - The zero-based index in array at which copying begins. - array is null. - The type of the source cannot be cast automatically to the type of the destination array. - index is less than zero. - array is multidimensional.-or- index is equal to or greater than the length of array.-or- The number of elements in the source is greater than the available space from index to the end of the destination array. - - - - Gets the number of elements contained in the . - - The number of elements contained in the . - - - - Gets a value indicating whether access to the is synchronized (thread safe). - - true if access to the is synchronized (thread safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the . - - An object that can be used to synchronize access to the . - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - - - - Abstract implementation of . - - - - - Identifies a property should be represented as a nested component. - - - - - Applies no prefix. - - - - - Gets or sets the prefix. - - The prefix. - - - - Identifies the dictionary adapter types. - - - - - Assigns a specific dictionary key. - - - - - Identifies an interface or property to be pre-fetched. - - - - - Instructs fetching to occur. - - - - - Instructs fetching according to - - - - - Gets whether or not fetching should occur. - - - - - Assigns a property to a group. - - - - - Constructs a group assignment. - - The group name. - - - - Constructs a group assignment. - - The group name. - - - - Gets the group the property is assigned to. - - - - - Suppresses any on-demand behaviors. - - - - - Assigns a specific dictionary key. - - - - - Initializes a new instance of the class. - - The key. - - - - Initializes a new instance of the class. - - The compound key. - - - - Assigns a prefix to the keyed properties of an interface. - - - Key prefixes are not inherited by sub-interfaces. - - - - - Initializes a default instance of the class. - - - - - Initializes a new instance of the class. - - The prefix for the keyed properties of the interface. - - - - Gets the prefix key added to the properties of the interface. - - - - - Substitutes part of key with another string. - - - - - Initializes a new instance of the class. - - The old value. - The new value. - - - - Requests support for multi-level editing. - - - - - Generates a new GUID on demand. - - - - - Support for on-demand value resolution. - - - - - Specifies assignment by reference rather than by copying. - - - - - Removes a property if matches value. - - - - - Removes a property if null or empty string, guid or collection. - - - - - Provides simple string formatting from existing properties. - - - - - Gets the string format. - - - - - Gets the format properties. - - - - - Identifies a property should be represented as a delimited string value. - - - - - Gets the separator. - - - - - Converts all properties to strings. - - - - - Gets or sets the format. - - The format. - - - - Suppress property change notifications. - - - - - Assigns a prefix to the keyed properties using the interface name. - - - - - Indicates that underlying values are changeable and should not be cached. - - - - - Initializes a new instance of the class - that represents a child object in a larger object graph. - - - - - Manages conversion between property values. - - - - - Initializes a new instance of the class. - - The converter. - - - - - - - - - Gets the effective dictionary value. - - The dictionary adapter. - The key. - The stored value. - The property. - true if return only existing. - The effective property value. - - - - Uses Reflection.Emit to expose the properties of a dictionary - through a dynamic implementation of a typed interface. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Wraps a with a dynamic object to expose a bit better looking API. - The implementation is trivial and assumes keys are s. - - - - - Contract for manipulating the Dictionary adapter. - - - - - Defines the contract for building typed dictionary adapters. - - - - - Gets a typed adapter bound to the . - - The typed interface. - The underlying source of properties. - An implementation of the typed interface bound to the dictionary. - - The type represented by T must be an interface with properties. - - - - - Gets a typed adapter bound to the . - - The typed interface. - The underlying source of properties. - An implementation of the typed interface bound to the dictionary. - - The type represented by T must be an interface with properties. - - - - - Gets a typed adapter bound to the . - - The typed interface. - The underlying source of properties. - The property descriptor. - An implementation of the typed interface bound to the dictionary. - - The type represented by T must be an interface with properties. - - - - - Gets a typed adapter bound to the . - - The typed interface. - The underlying source of properties. - An implementation of the typed interface bound to the namedValues. - - The type represented by T must be an interface with properties. - - - - - Gets a typed adapter bound to the . - - The typed interface. - The underlying source of properties. - An implementation of the typed interface bound to the namedValues. - - The type represented by T must be an interface with properties. - - - - - Gets a typed adapter bound to the . - - The typed interface. - The underlying source of properties. - An implementation of the typed interface bound to the . - - The type represented by T must be an interface with properties. - - - - - Gets a typed adapter bound to the . - - The typed interface. - The underlying source of properties. - An implementation of the typed interface bound to the . - - The type represented by T must be an interface with properties. - - - - - Gets the associated with the type. - - The typed interface. - The adapter meta-data. - - - - Gets the associated with the type. - - The typed interface. - The property descriptor. - The adapter meta-data. - - - - Gets the associated with the type. - - The typed interface. - Another from which to copy behaviors. - The adapter meta-data. - - - - Contract for traversing a . - - - - - Defines the contract for customizing dictionary access. - - - - - Determines relative order to apply related behaviors. - - - - - Copies the dictionary behavior. - - null if should not be copied. Otherwise copy. - - - - Defines the contract for building s. - - - - - Builds the dictionary behaviors. - - - - - Contract for creating additional Dictionary adapters. - - - - - Contract for editing the Dictionary adapter. - - - - - Contract for dictionary initialization. - - - - - Performs any initialization of the - - The dictionary adapter. - The dictionary behaviors. - - - - Defines the contract for building typed dictionary keys. - - - - - Builds the specified key. - - The dictionary adapter. - The current key. - The property. - The updated key - - - - Contract for dictionary meta-data initialization. - - - - - Initializes the given object. - - The dictionary adapter factory. - The dictionary adapter meta. - - - - - Determines whether the given behavior should be included in a new - object. - - A dictionary behavior or annotation. - True if the behavior should be included; otherwise, false. - - behaviors are always included, - regardless of the result of this method. - - - - - - Contract for managing Dictionary adapter notifications. - - - - - Defines the contract for retrieving dictionary values. - - - - - Gets the effective dictionary value. - - The dictionary adapter. - The key. - The stored value. - The property. - true if return only existing. - The effective property value. - - - - Defines the contract for updating dictionary values. - - - - - Sets the stored dictionary value. - - The dictionary adapter. - The key. - The stored value. - The property. - true if the property should be stored. - - - - Contract for validating Dictionary adapter. - - - - - Contract for dictionary validation. - - - - - Determines if is valid. - - The dictionary adapter. - true if valid. - - - - Validates the . - - The dictionary adapter. - The error summary information. - - - - Validates the for a property. - - The dictionary adapter. - The property to validate. - The property summary information. - - - - Invalidates any results cached by the validator. - - The dictionary adapter. - - - - Contract for property descriptor initialization. - - - - - Performs any initialization of the - - The property descriptor. - The property behaviors. - - - - - - - - - Initializes a new instance of the class. - - The name values. - - - - Gets a value indicating whether the object is read-only. - - true if the object is read-only; otherwise, false. - - - - Determines whether the object contains an element with the specified key. - - The key to locate in the object. - - true if the contains an element with the key; otherwise, false. - - key is null. - - - - Gets or sets the with the specified key. - - - - - Adapts the specified name values. - - The name values. - - - - Describes a dictionary property. - - - - - Initializes an empty class. - - - - - Initializes a new instance of the class. - - The property. - The annotations. - - - - Initializes a new instance class. - - - - - Copies an existing instance of the class. - - - - - - - - - - Gets the property name. - - - - - Gets the property type. - - - - - Gets the property. - - The property. - - - - Returns true if the property is dynamic. - - - - - Gets additional state. - - - - - Determines if property should be fetched. - - - - - Determines if property must exist first. - - - - - Determines if notifications should occur. - - - - - Gets the property behaviors. - - - - - Gets the type converter. - - The type converter. - - - - Gets the extended properties. - - - - - Gets the setter. - - The setter. - - - - Gets the key builders. - - The key builders. - - - - Gets the setter. - - The setter. - - - - Gets the getter. - - The getter. - - - - Gets the initializers. - - The initializers. - - - - Gets the meta-data initializers. - - The meta-data initializers. - - - - Gets the key. - - The dictionary adapter. - The key. - The descriptor. - - - - Gets the property value. - - The dictionary adapter. - The key. - The stored value. - The descriptor. - true if return only existing. - - - - Sets the property value. - - The dictionary adapter. - The key. - The value. - The descriptor. - - - - Adds a single behavior. - - The behavior. - - - - Adds the behaviors. - - The behaviors. - - - - Adds the behaviors. - - The behaviors. - - - - Copies the behaviors to the other - - - - - Copies the - - - - - Provides a generic collection that supports data binding. - - - This class wraps the CLR - in order to implement the Castle-specific . - - The type of elements in the list. - - - - Initializes a new instance of the class - using default values. - - - - - Initializes a new instance of the class - with the specified list. - - - An of items - to be contained in the . - - - - - Initializes a new instance of the class - wrapping the specified instance. - - - A - to be wrapped by the . - - - - - Contract for value matching. - - - - - Contract for dynamic value resolution. - - - - - Contract for typed dynamic value resolution. - - - - - - This is an abstract implementation - that deals with methods that can be abstracted away - from underlying implementations. - - - AbstractConfiguration makes easier to implementers - to create a new version of - - - - - Gets node attributes. - - - All attributes of the node. - - - - - Gets all child nodes. - - The of child nodes. - - - - Gets the name of the . - - - The Name of the . - - - - - Gets the value of . - - - The Value of the . - - - - - Gets the value of the node and converts it - into specified . - - The - - The Default value returned if the conversion fails. - - The Value converted into the specified type. - - - - A collection of objects. - - - - - Creates a new instance of ConfigurationCollection. - - - - - Creates a new instance of ConfigurationCollection. - - - - - is a interface encapsulating a configuration node - used to retrieve configuration values. - - - - - Gets the name of the node. - - - The Name of the node. - - - - - Gets the value of the node. - - - The Value of the node. - - - - - Gets an of - elements containing all node children. - - The Collection of child nodes. - - - - Gets an of the configuration attributes. - - - - - Gets the value of the node and converts it - into specified . - - The - - The Default value returned if the conversion fails. - - The Value converted into the specified type. - - - - Initializes a new instance of the class. - - The name. - - - - Gets the value of . - - - The Value of the . - - - - - Deserializes the specified node into an abstract representation of configuration. - - The node. - - - - If a config value is an empty string we return null, this is to keep - backward compatibility with old code - - - - - Helper class for retrieving attributes. - - - - - Gets the attribute. - - The type. - The type attribute. - - - - Gets the attributes. Does not consider inherited attributes! - - The type. - The type attributes. - - - - Gets the attribute. - - The member. - The member attribute. - - - - Gets the attributes. Does not consider inherited attributes! - - The member. - The member attributes. - - - - Gets the type attribute. - - The type. - The type attribute. - - - - Gets the type attributes. - - The type. - The type attributes. - - - - Gets the type converter. - - The member. - - - - Constant to use when making assembly internals visible to Castle.Core - [assembly: InternalsVisibleTo(CoreInternalsVisible.ToCastleCore)] - - - - - Constant to use when making assembly internals visible to proxy types generated by DynamicProxy. Required when proxying internal types. - [assembly: InternalsVisibleTo(CoreInternalsVisible.ToDynamicProxyGenAssembly2)] - - - - - Find the best available name to describe a type. - - - Usually the best name will be , but - sometimes that's null (see http://msdn.microsoft.com/en-us/library/system.type.fullname%28v=vs.110%29.aspx) - in which case the method falls back to . - - the type to name - the best name - - - - Defines that the implementation wants a - in order to - access other components. The creator must be aware - that the component might (or might not) implement - the interface. - - - Used by Castle Project components to, for example, - gather logging factories - - - - - Increments IServiceProvider with a generic service resolution operation. - - - - - This interface should be implemented by classes - that are available in a bigger context, exposing - the container to different areas in the same application. - - For example, in Web application, the (global) HttpApplication - subclasses should implement this interface to expose - the configured container - - - - - - Creates a new extended logger, getting the logger name from the specified type. - - - - - Creates a new extended logger. - - - - - Creates a new extended logger, getting the logger name from the specified type. - - - - - Creates a new extended logger. - - - - - Creates a new logger, getting the logger name from the specified type. - - - - - Creates a new logger. - - - - - Creates a new logger, getting the logger name from the specified type. - - - - - Creates a new logger. - - - - - Gets the configuration file. - - i.e. log4net.config - - - - Gets the configuration file. - - i.e. log4net.config - - - - The Logger sending everything to the standard output streams. - This is mainly for the cases when you have a utility that - does not have a logger to supply. - - - - - Creates a new ConsoleLogger with the Level - set to LoggerLevel.Debug and the Name - set to string.Empty. - - - - - Creates a new ConsoleLogger with the Name - set to string.Empty. - - The logs Level. - - - - Creates a new ConsoleLogger with the Level - set to LoggerLevel.Debug. - - The logs Name. - - - - Creates a new ConsoleLogger. - - The logs Name. - The logs Level. - - - - A Common method to log. - - The level of logging - The name of the logger - The Message - The Exception - - - - Returns a new ConsoleLogger with the name - added after this loggers name, with a dot in between. - - The added hierarchical name. - A new ConsoleLogger. - - - - The Logger using standard Diagnostics namespace. - - - - - Creates a logger based on . - - - - - - Creates a logger based on . - - - - - - - Creates a logger based on . - - - - - - - - Interface for Context Properties implementations - - - - This interface defines a basic property get set accessor. - - - Based on the ContextPropertiesBase of log4net, by Nicko Cadell. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Provides an interface that supports and - allows the storage and retrieval of Contexts. These are supported in - both log4net and NLog. - - - - - Exposes the Global Context of the extended logger. - - - - - Exposes the Thread Context of the extended logger. - - - - - Exposes the Thread Stack of the extended logger. - - - - - Provides a factory that can produce either or - classes. - - - - - Creates a new extended logger, getting the logger name from the specified type. - - - - - Creates a new extended logger. - - - - - Creates a new extended logger, getting the logger name from the specified type. - - - - - Creates a new extended logger. - - - - - Manages logging. - - - This is a facade for the different logging subsystems. - It offers a simplified interface that follows IOC patterns - and a simplified priority/level/severity abstraction. - - - - - Determines if messages of priority "trace" will be logged. - - True if "trace" messages will be logged. - - - - Determines if messages of priority "debug" will be logged. - - True if "debug" messages will be logged. - - - - Determines if messages of priority "error" will be logged. - - True if "error" messages will be logged. - - - - Determines if messages of priority "fatal" will be logged. - - True if "fatal" messages will be logged. - - - - Determines if messages of priority "info" will be logged. - - True if "info" messages will be logged. - - - - Determines if messages of priority "warn" will be logged. - - True if "warn" messages will be logged. - - - - Create a new child logger. - The name of the child logger is [current-loggers-name].[passed-in-name] - - The Subname of this logger. - The New ILogger instance. - If the name has an empty element name. - - - - Logs a trace message. - - The message to log - - - - Logs a trace message with lazily constructed message. The message will be constructed only if the is true. - - - - - Logs a trace message. - - The exception to log - The message to log - - - - Logs a trace message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a trace message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a trace message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a trace message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The message to log - - - - Logs a debug message with lazily constructed message. The message will be constructed only if the is true. - - - - - Logs a debug message. - - The exception to log - The message to log - - - - Logs a debug message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The message to log - - - - Logs an error message with lazily constructed message. The message will be constructed only if the is true. - - - - - Logs an error message. - - The exception to log - The message to log - - - - Logs an error message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The message to log - - - - Logs a fatal message with lazily constructed message. The message will be constructed only if the is true. - - - - - Logs a fatal message. - - The exception to log - The message to log - - - - Logs a fatal message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The message to log - - - - Logs a info message with lazily constructed message. The message will be constructed only if the is true. - - - - - Logs an info message. - - The exception to log - The message to log - - - - Logs an info message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The message to log - - - - Logs a warn message with lazily constructed message. The message will be constructed only if the is true. - - - - - Logs a warn message. - - The exception to log - The message to log - - - - Logs a warn message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Manages the instantiation of s. - - - - - Creates a new logger, getting the logger name from the specified type. - - - - - Creates a new logger. - - - - - Creates a new logger, getting the logger name from the specified type. - - - - - Creates a new logger. - - - - - The Level Filtered Logger class. This is a base class which - provides a LogLevel attribute and reroutes all functions into - one Log method. - - - - - Creates a new LevelFilteredLogger. - - - - - The LoggerLevel that this logger - will be using. Defaults to LoggerLevel.Off - - - - - The name that this logger will be using. - Defaults to string.Empty - - - - - Logs a trace message. - - The message to log - - - - Logs a trace message. - - A functor to create the message - - - - Logs a trace message. - - The exception to log - The message to log - - - - Logs a trace message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a trace message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a trace message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a trace message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The message to log - - - - Logs a debug message. - - The exception to log - The message to log - - - - Logs a debug message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The message to log - - - - Logs an info message. - - The exception to log - The message to log - - - - Logs an info message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The message to log - - - - Logs a warn message. - - The exception to log - The message to log - - - - Logs a warn message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The message to log - - - - Logs an error message. - - The exception to log - The message to log - - - - Logs an error message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The message to log - - - - Logs a fatal message. - - The exception to log - The message to log - - - - Logs a fatal message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Determines if messages of priority "trace" will be logged. - - true if log level flags include the bit - - - - Determines if messages of priority "debug" will be logged. - - true if log level flags include the bit - - - - Determines if messages of priority "info" will be logged. - - true if log level flags include the bit - - - - Determines if messages of priority "warn" will be logged. - - true if log level flags include the bit - - - - Determines if messages of priority "error" will be logged. - - true if log level flags include the bit - - - - Determines if messages of priority "fatal" will be logged. - - true if log level flags include the bit - - - - Implementors output the log content by implementing this method only. - Note that exception can be null - - - - - Supporting Logger levels. - - - - - Logging will be off - - - - - Fatal logging level - - - - - Error logging level - - - - - Warn logging level - - - - - Info logging level - - - - - Debug logging level - - - - - Trace logging level - - - - - NullLogFactory used when logging is turned off. - - - - - Creates an instance of ILogger with the specified name. - - Name. - - - - Creates an instance of ILogger with the specified name and LoggerLevel. - - Name. - Level. - - - - The Null Logger class. This is useful for implementations where you need - to provide a logger to a utility class, but do not want any output from it. - It also helps when you have a utility that does not have a logger to supply. - - - - - Returns empty context properties. - - - - - Returns empty context properties. - - - - - Returns empty context stacks. - - - - - No-op. - - false - - - - No-op. - - false - - - - No-op. - - false - - - - No-op. - - false - - - - No-op. - - false - - - - No-op. - - false - - - - Returns this NullLogger. - - Ignored - This ILogger instance. - - - - No-op. - - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - Ignored - - - - The Stream Logger class. This class can stream log information - to any stream, it is suitable for storing a log file to disk, - or to a MemoryStream for testing your components. - - - This logger is not thread safe. - - - - - Creates a new StreamLogger with default encoding - and buffer size. Initial Level is set to Debug. - - - The name of the log. - - - The stream that will be used for logging, - seeking while the logger is alive - - - - - Creates a new StreamLogger with default buffer size. - Initial Level is set to Debug. - - - The name of the log. - - - The stream that will be used for logging, - seeking while the logger is alive - - - The encoding that will be used for this stream. - - - - - - Creates a new StreamLogger. - Initial Level is set to Debug. - - - The name of the log. - - - The stream that will be used for logging, - seeking while the logger is alive - - - The encoding that will be used for this stream. - - - - The buffer size that will be used for this stream. - - - - - - Creates a new StreamLogger with - Debug as default Level. - - The name of the log. - The StreamWriter the log will write to. - - - - Creates outputting - to files. The name of the file is derived from the log name - plus the 'log' extension. - - - - - The TraceLogger sends all logging to the System.Diagnostics.TraceSource - built into the .net framework. - - - Logging can be configured in the system.diagnostics configuration - section. - - If logger doesn't find a source name with a full match it will - use source names which match the namespace partially. For example you can - configure from all castle components by adding a source name with the - name "Castle". - - If no portion of the namespace matches the source named "Default" will - be used. - - - - - Build a new trace logger based on the named TraceSource - - The name used to locate the best TraceSource. In most cases comes from the using type's fullname. - - - - Build a new trace logger based on the named TraceSource - - The name used to locate the best TraceSource. In most cases comes from the using type's fullname. - The default logging level at which this source should write messages. In almost all cases this - default value will be overridden in the config file. - - - - Create a new child logger. - The name of the child logger is [current-loggers-name].[passed-in-name] - - The Subname of this logger. - The New ILogger instance. - - - - Used to create the TraceLogger implementation of ILogger interface. See . - - - - - List of utility methods related to dynamic proxy operations - - - - - Determines whether the specified type is a proxy generated by - DynamicProxy (1 or 2). - - The type. - - true if it is a proxy; otherwise, false. - - - - - Readonly implementation of which uses an anonymous object as its source. Uses names of properties as keys, and property values as... well - values. Keys are not case sensitive. - - - - - Initializes a new instance of the class. - - The target. - - - - Gets the number of elements contained in the . - - The number of elements contained in the . - - - - Gets a value indicating whether access to the is synchronized (thread safe). - - true if access to the is synchronized (thread safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the . - - An object that can be used to synchronize access to the . - - - - Gets a value indicating whether the object is read-only. - - true if the object is read-only; otherwise, false. - - - - Gets or sets the with the specified key. - - - - - Gets an object containing the keys of the object. - - An object containing the keys of the object. - - - - Gets an object containing the values in the object. - - An object containing the values in the object. - - - - Gets a value indicating whether the object has a fixed size. - - true if the object has a fixed size; otherwise, false. - - - - Adds an element with the provided key and value to the object. - - The to use as the key of the element to add. - The to use as the value of the element to add. - - is null. - An element with the same key already exists in the object. - The is read-only.-or- The has a fixed size. - - - - Removes all elements from the object. - - The object is read-only. - - - - Determines whether the object contains an element with the specified key. - - The key to locate in the object. - - true if the contains an element with the key; otherwise, false. - - - is null. - - - - Removes the element with the specified key from the object. - - The key of the element to remove. - - is null. - The object is read-only.-or- The has a fixed size. - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - - - - Copies the elements of the to an , starting at a particular index. - - The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. - The zero-based index in at which copying begins. - - is null. - - is less than zero. - - is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source is greater than the available space from to the end of the destination . - The type of the source cannot be cast automatically to the type of the destination . - - - - Returns an object for the object. - - - An object for the object. - - - - - Reads values of properties from and inserts them into using property names as keys. - - - - - - - - - - This returns a new stream instance each time it is called. - It is the responsibility of the caller to dispose of this stream - - - - - - - - - - - - - - - Represents a 'streamable' resource. Can - be a file, a resource in an assembly. - - - - - Only valid for resources that - can be obtained through relative paths - - - - - Returns a reader for the stream - - - It's up to the caller to dispose the reader. - - - - - Returns a reader for the stream - - - It's up to the caller to dispose the reader. - - - - - Returns an instance of - created according to the relativePath - using itself as the root. - - - - - Depicts the contract for resource factories. - - - - - Used to check whether the resource factory - is able to deal with the given resource - identifier. - - - Implementors should return true - only if the given identifier is supported - by the resource factory - - - - - Creates an instance - for the given resource identifier - - - - - Creates an instance - for the given resource identifier - - - - - Adapts a static string content as an - - - - - Enable access to files on network shares - - - - - Default implementation. - - - - - Initializes a new instance of the class based on the configuration provided in the application configuration file. - - - This constructor is based on the default configuration in the application configuration file. - - - - - This service implementation - requires a host name in order to work - - The smtp server name - - - - Gets or sets the port used to - access the SMTP server - - - - - Gets the hostname. - - The hostname. - - - - Gets or sets a value which is used to - configure if emails are going to be sent asynchronously or not. - - - - - Gets or sets a value that specifies - the amount of time after which a synchronous Send call times out. - - - - - Gets or sets a value indicating whether the email should be sent using - a secure communication channel. - - true if should use SSL; otherwise, false. - - - - Sends a message. - - If any of the parameters is null - From field - To field - e-mail's subject - message's body - - - - Sends a message. - - If the message is null - Message instance - - - - Gets or sets the domain. - - The domain. - - - - Gets or sets the name of the user. - - The name of the user. - - - - Gets or sets the password. - - The password. - - - - Configures the sender - with port information and eventual credential - informed - - Message instance - - - - Gets a value indicating whether credentials were informed. - - - if this instance has credentials; otherwise, . - - - - - Email sender abstraction. - - - - - Sends a mail message. - - From field - To field - E-mail's subject - message's body - - - - Sends a message. - - Message instance - - - - Sends multiple messages. - - List of messages - - - - Interface describing elements composing generated type - - - - - Performs some basic screening and invokes the - to select methods. - - - - - Performs some basic screening to filter out non-interceptable methods. - - - The will get invoked for non-interceptable method notification only; - it does not get asked whether or not to intercept the . - - - - - Reproduces the proxied type's non-inheritable custom attributes on the proxy type. - - - - - Adds an implementation for to the proxy type. - - - - - Encapsulates the information needed to build an attribute. - - - Arrays passed to this class as constructor arguments or property or field values become owned by this class. - They should not be mutated after creation. - - - - - Default implementation of interface producing in-memory proxy assemblies. - - - - - Initializes a new instance of the class with new . - - - - - Initializes a new instance of the class. - - The module scope for generated proxy types. - - - - Provides instructions that a user could follow to make a type or method in - visible to DynamicProxy. - The assembly containing the type or method. - Instructions that a user could follow to make a type or method visible to DynamicProxy. - - - - Creates a message to inform clients that a proxy couldn't be created due to reliance on an - inaccessible type (perhaps itself). - - the inaccessible type that prevents proxy creation - the type that couldn't be proxied - - - - Base class that exposes the common functionalities - to proxy generation. - - - - - It is safe to add mapping (no mapping for the interface exists) - - - - - Generates a parameters constructor that initializes the proxy - state with just to make it non-null. - - This constructor is important to allow proxies to be XML serializable - - - - - - Initializes a new instance of the class. - - Target element. This is either target type or target method for invocation types. - The type of the proxy. This is base type for invocation types. - The interfaces. - The options. - - - - Initializes a new instance of the class. - - Type of the target. - The interfaces. - The options. - - - - Provides appropriate Ldc.X opcode for the type of primitive value to be loaded. - - - - - Provides appropriate Ldind.X opcode for - the type of primitive value to be loaded indirectly. - - - - - Emits a load indirect opcode of the appropriate type for a value or object reference. - Pops a pointer off the evaluation stack, dereferences it and loads - a value of the specified type. - - - - - Emits a load opcode of the appropriate kind for the constant default value of a - type, such as 0 for value types and null for reference types. - - - - - Emits a store indirectopcode of the appropriate type for a value or object reference. - Pops a value of the specified type and a pointer off the evaluation stack, and - stores the value. - - - - - Wraps a reference that is passed - ByRef and provides indirect load/store support. - - - - - Provides appropriate Stind.X opcode - for the type of primitive value to be stored indirectly. - - - - - Represents the scope of uniqueness of names for types and their members - - - - - Gets a unique name based on - - Name suggested by the caller - Unique name based on . - - Implementers should provide name as closely resembling as possible. - Generally if no collision occurs it is suggested to return suggested name, otherwise append sequential suffix. - Implementers must return deterministic names, that is when is called twice - with the same suggested name, the same returned name should be provided each time. Non-deterministic return - values, like appending random suffices will break serialization of proxies. - - - - - Returns new, disposable naming scope. It is responsibility of the caller to make sure that no naming collision - with enclosing scope, or other subscopes is possible. - - New naming scope. - - - - Generates the constructor for the class that extends - - - - - - Initializes a new instance of the class. - - The event. - The add method. - The remove method. - The attributes. - - - - Returns the methods implemented by a type. Use this instead of Type.GetMethods() to work around a CLR issue - where duplicate MethodInfos are returned by Type.GetMethods() after a token of a generic type's method was loaded. - - - - - Exposes means to change target objects of proxies and invocations. - - - - - Changes the target object () of current . - - The new value of target of invocation. - - Although the method takes the actual instance must be of type assignable to , otherwise an will be thrown. - Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. - In this case last interceptor in the pipeline mustn't call or a will be throws. - Also while it's technically legal to pass proxy itself as , this would create stack overflow. - In this case last interceptor in the pipeline mustn't call or a will be throws. - - Thrown when is not assignable to the proxied type. - - - - Permanently changes the target object of the proxy. This does not affect target of the current invocation. - - The new value of target of the proxy. - - Although the method takes the actual instance must be of type assignable to proxy's target type, otherwise an will be thrown. - Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. - In this case last interceptor in the pipeline mustn't call or a will be throws. - Also while it's technically legal to pass proxy itself as , this would create stack overflow. - In this case last interceptor in the pipeline mustn't call or a will be throws. - - Thrown when is not assignable to the proxied type. - - - - Provides the main DynamicProxy extension point that allows member interception. - - - - - Provides an extension point that allows proxies to choose specific interceptors on - a per method basis. - - - - - Selects the interceptors that should intercept calls to the given . - - The type of the target object. - The method that will be intercepted. - All interceptors registered with the proxy. - An array of interceptors to invoke upon calling the . - - This method is called only once per proxy instance, upon the first call to the - . Either an empty array or null are valid return values to indicate - that no interceptor should intercept calls to the method. Although it is not advised, it is - legal to return other implementations than these provided in - . - - - - - Encapsulates an invocation of a proxied method. - - - - - Gets the arguments that the has been invoked with. - - The arguments the method was invoked with. - - - - Gets the generic arguments of the method. - - The generic arguments, or null if not a generic method. - - - - Gets the object on which the invocation is performed. This is different from proxy object - because most of the time this will be the proxy target object. - - - The invocation target. - - - - Gets the representing the method being invoked on the proxy. - - The representing the method being invoked. - - - - For interface proxies, this will point to the on the target class. - - The method invocation target. - - - - Gets the proxy object on which the intercepted method is invoked. - - Proxy object on which the intercepted method is invoked. - - - - Gets or sets the return value of the method. - - The return value of the method. - - - - Gets the type of the target object for the intercepted method. - - The type of the target object. - - - - Gets the value of the argument at the specified . - - The index. - The value of the argument at the specified . - - - - Returns the concrete instantiation of the on the proxy, with any generic - parameters bound to real types. - - - The concrete instantiation of the on the proxy, or the if - not a generic method. - - - Can be slower than calling . - - - - - Returns the concrete instantiation of , with any - generic parameters bound to real types. - For interface proxies, this will point to the on the target class. - - The concrete instantiation of , or - if not a generic method. - - In debug builds this can be slower than calling . - - - - - Proceeds the call to the next interceptor in line, and ultimately to the target method. - - - Since interface proxies without a target don't have the target implementation to proceed to, - it is important, that the last interceptor does not call this method, otherwise a - will be thrown. - - - - - Returns an object describing the operation for this - at this specific point during interception. - - - - - Overrides the value of an argument at the given with the - new provided. - - - This method accepts an , however the value provided must be compatible - with the type of the argument defined on the method, otherwise an exception will be thrown. - - The index of the argument to override. - The new value for the argument. - - - - Describes the operation for an - at a specific point during interception. - - - - - Executes the operation described by this instance. - - There is no interceptor, nor a proxy target object, to proceed to. - - - - Attributes should be replicated if they are non-inheritable, - but there are some special cases where the attributes means - something to the CLR, where they should be skipped. - - - - - Returns list of all unique interfaces implemented given types, including their base interfaces. - - - - - Checks whether the specified is a delegate type (i.e. a direct subclass of ). - - - - - Abstracts the implementation of proxy type construction. - - - - - Gets or sets the that this logs to. - - - - - Gets the associated with this builder. - - The module scope associated with this builder. - - - - Creates a proxy type for given , implementing , using provided. - - The class type to proxy. - Additional interface types to proxy. - The proxy generation options. - The generated proxy type. - - Implementers should return a proxy type for the specified class and interfaces. - Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) - - Thrown when or any of is a generic type definition. - Thrown when or any of is not public. - Note that to avoid this exception, you can mark offending type internal, and define - pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. - - - - - Creates a proxy type that proxies calls to members on , implementing , using provided. - - The interface type to proxy. - Additional interface types to proxy. - Type implementing on which calls to the interface members should be intercepted. - The proxy generation options. - The generated proxy type. - - Implementers should return a proxy type for the specified interface that 'proceeds' executions to the specified target. - Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) - - Thrown when or any of is a generic type definition. - Thrown when or any of is not public. - Note that to avoid this exception, you can mark offending type internal, and define - pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. - - - - - Creates a proxy type for given and that delegates all calls to the provided interceptors and allows interceptors to switch the actual target of invocation. - - The interface type to proxy. - Additional interface types to proxy. - The proxy generation options. - The generated proxy type. - - Implementers should return a proxy type for the specified interface(s) that delegate all executions to the specified interceptors - and uses an instance of the interface as their targets (i.e. ), rather than a class. All classes should then implement interface, - to allow interceptors to switch invocation target with instance of another type implementing called interface. - - Thrown when or any of is a generic type definition. - Thrown when or any of is not public. - Note that to avoid this exception, you can mark offending type internal, and define - pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. - - - - - Creates a proxy type for given that delegates all calls to the provided interceptors. - - The interface type to proxy. - Additional interface types to proxy. - The proxy generation options. - The generated proxy type. - - Implementers should return a proxy type for the specified interface and additional interfaces that delegate all executions to the specified interceptors. - - Thrown when or any of is a generic type definition. - Thrown when or any of is not public. - Note that to avoid this exception, you can mark offending type internal, and define - pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. - - - - - Used during the target type inspection process. Implementors have a chance to customize the - proxy generation process. - - - - - Invoked by the generation process to notify that the whole process has completed. - - - - - Invoked by the generation process to notify that a member was not marked as virtual. - - The type which declares the non-virtual member. - The non-virtual member. - - This method gives an opportunity to inspect any non-proxyable member of a type that has - been requested to be proxied, and if appropriate - throw an exception to notify the caller. - - - - - Invoked by the generation process to determine if the specified method should be proxied. - - The type which declares the given method. - The method to inspect. - True if the given method should be proxied; false otherwise. - - - - Provides proxy objects for classes and interfaces. - - - - - Gets or sets the that this log to. - - - - - Gets the proxy builder instance used to generate proxy types. - - The proxy builder. - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - Object proxying calls to members of on object. - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of types on generated target object. - - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - As a result of that also at least one implementation must be provided. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of types on generated target object. - - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - As a result of that also at least one implementation must be provided. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of types on generated target object. - - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - As a result of that also at least one implementation must be provided. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The proxy generation options used to influence generated proxy type and object. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no parameterless constructor exists on type . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no parameterless constructor exists on type . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Exposes access to the target object and interceptors of proxy objects. - This is a DynamicProxy infrastructure interface and should not be implemented yourself. - - - - - Get the proxy target (note that null is a valid target!) - - - - - Set the proxy target. - - New proxy target. - - - - Gets the interceptors for the proxy - - - - - Because we need to cache the types based on the mixed in mixins, we do the following here: - - Get all the mixin interfaces - - Sort them by full name - - Return them by position - - The idea is to have reproducible behavior for the case that mixins are registered in different orders. - This method is here because it is required - - - - - The default file name used when the assembly is saved using . - - - - - The default assembly (simple) name used for the assemblies generated by a instance. - - - - - Initializes a new instance of the class; assemblies created by this instance will not be saved. - - - - - Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance - should be saved. - - If set to true saves the generated module. - - - - Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance - should be saved. - - If set to true saves the generated module. - If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. - - - - Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance - should be saved and what simple names are to be assigned to them. - - If set to true saves the generated module. - If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. - The simple name of the strong-named assembly generated by this . - The path and file name of the manifest module of the strong-named assembly generated by this . - The simple name of the weak-named assembly generated by this . - The path and file name of the manifest module of the weak-named assembly generated by this . - - - - Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance - should be saved and what simple names are to be assigned to them. - - If set to true saves the generated module. - If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. - Naming scope used to provide unique names to generated types and their members (usually via sub-scopes). - The simple name of the strong-named assembly generated by this . - The path and file name of the manifest module of the strong-named assembly generated by this . - The simple name of the weak-named assembly generated by this . - The path and file name of the manifest module of the weak-named assembly generated by this . - - - - Gets the key pair used to sign the strong-named assembly generated by this . - - - - - Gets the strong-named module generated by this scope, or if none has yet been generated. - - The strong-named module generated by this scope, or if none has yet been generated. - - - - Gets the file name of the strongly named module generated by this scope. - - The file name of the strongly named module generated by this scope. - - - - Gets the weak-named module generated by this scope, or if none has yet been generated. - - The weak-named module generated by this scope, or if none has yet been generated. - - - - Gets the file name of the weakly named module generated by this scope. - - The file name of the weakly named module generated by this scope. - - - - Gets the specified module generated by this scope, creating a new one if none has yet been generated. - - If set to true, a strong-named module is returned; otherwise, a weak-named module is returned. - A strong-named or weak-named module generated by this scope, as specified by the parameter. - - - - Gets the strong-named module generated by this scope, creating a new one if none has yet been generated. - - A strong-named module generated by this scope. - - - - Gets the weak-named module generated by this scope, creating a new one if none has yet been generated. - - A weak-named module generated by this scope. - - - - allows customization of the behavior of proxies created by - an (or proxy types generated by an ). - - You should not modify an instance of once it has been - used to create a proxy (or proxy type). - - - - - - Initializes a new instance of the class. - - The hook. - - - - Initializes a new instance of the class. - - - - - Gets or sets the that should be used during proxy type - generation. Defaults to an instance of . - - You should not modify this property once this instance - has been used to create a proxy. - - - - - - Gets or sets the that should be used by created proxies - to determine which interceptors to use for an interception. If set to - (which is the default), created proxies will not use any selector. - - You should not modify this property once this instance - has been used to create a proxy. - - - - - - Gets or sets the class type from which generated interface proxy types will be derived. - Defaults to (). - - You should not modify this property once this instance - has been used to create a proxy. - - - - - - Gets the collection of additional custom attributes that will be put on generated proxy types. - This collection is initially empty. - - You should not modify this collection once this instance - has been used to create a proxy. - - - - - - Adds a delegate type to the list of mixins that will be added to generated proxies. - That is, generated proxies will have a `Invoke` method with a signature matching that - of the specified . - - You should not call this method once this instance - has been used to create a proxy. - - - The delegate type whose `Invoke` method should be reproduced in generated proxies. - is . - is not a delegate type. - - - - Adds a delegate to be mixed into generated proxies. The - will act as the target for calls to a `Invoke` method with a signature matching that - of the delegate. - - You should not call this method once this instance - has been used to create a proxy. - - - The delegate that should act as the target for calls to `Invoke` methods with a matching signature. - is . - - - - Mixes the interfaces implemented by the specified object into - created proxies, and uses as the target for these mixed-in interfaces. - - You should not call this method once this instance - has been used to create a proxy. - - - The object that should act as the target for all of its implemented interfaces' methods. - is . - is an instance of . - - - - Provides proxy objects for classes and interfaces. - - - - - Initializes a new instance of the class. - - Proxy types builder. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - If true forces all types to be generated into an unsigned module. - - - - Gets or sets the that this log to. - - - - - Gets the proxy builder instance used to generate proxy types. - - The proxy builder. - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - Object proxying calls to members of on object. - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of types on generated target object. - - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - As a result of that also at least one implementation must be provided. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of types on generated target object. - - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - As a result of that also at least one implementation must be provided. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of types on generated target object. - - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - As a result of that also at least one implementation must be provided. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The proxy generation options used to influence generated proxy type and object. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no parameterless constructor exists on type . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no parameterless constructor exists on type . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates the proxy type for class proxy with given class, implementing given and using provided . - - The base class for proxy type. - The interfaces that proxy type should implement. - The options for proxy generation process. - of proxy. - - - - Creates the proxy type for interface proxy with target for given interface, implementing given on given and using provided . - - The interface proxy type should implement. - The additional interfaces proxy type should implement. - Actual type that the proxy type will encompass. - The options for proxy generation process. - of proxy. - - - - Creates the proxy type for interface proxy with target interface for given interface, implementing given on given and using provided . - - The interface proxy type should implement. - The additional interfaces proxy type should implement. - The options for proxy generation process. - of proxy. - - - - Creates the proxy type for interface proxy without target for given interface, implementing given and using provided . - - The interface proxy type should implement. - The additional interfaces proxy type should implement. - The options for proxy generation process. - of proxy. - - - - Creates a delegate of the specified type to a suitable `Invoke` method - on the given instance. - - The proxy instance to which the delegate should be bound. - The type of delegate that should be created. - - The does not have an `Invoke` method that is compatible with - the requested type. - - - - - Creates a delegate of the specified type to a suitable `Invoke` method - on the given instance. - - The proxy instance to which the delegate should be bound. - The type of delegate that should be created. - - The does not have an `Invoke` method that is compatible with - the requested . - - - - - Checks whether the specified method is accessible to DynamicProxy. - The method to check. - true if the method is accessible to DynamicProxy, false otherwise. - - - - Checks whether the specified method is accessible to DynamicProxy. - The method to check. - If the method is accessible to DynamicProxy, null; otherwise, an explanation of why the method is not accessible. - true if the method is accessible to DynamicProxy, false otherwise. - - - - Checks whether the specified type is accessible to DynamicProxy. - The type to check. - true if the type is accessible to DynamicProxy, false otherwise. - - - - Determines whether this assembly has internals visible to DynamicProxy. - - The assembly to inspect. - - - - Checks whether the specified method is accessible to DynamicProxy. - Unlike with , the declaring type's accessibility is ignored. - - The method to check. - true if the method is accessible to DynamicProxy, false otherwise. - - - - Determines whether the specified method is internal. - - The method. - - true if the specified method is internal; otherwise, false. - - - - - Holds objects representing methods of class. - - - - + + + + Castle.Core + + + + + Abstract adapter for the support + needed by the + + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + An element with the same key already exists in the object. + key is null. + The is read-only.-or- The has a fixed size. + + + + Removes all elements from the object. + + The object is read-only. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + key is null. + + + + Returns an object for the object. + + + An object for the object. + + + + + Gets a value indicating whether the object has a fixed size. + + true if the object has a fixed size; otherwise, false. + + + + Gets a value indicating whether the object is read-only. + + true if the object is read-only; otherwise, false. + + + + Gets an object containing the keys of the object. + + An object containing the keys of the object. + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + The object is read-only.-or- The has a fixed size. + key is null. + + + + Gets an object containing the values in the object. + + An object containing the values in the object. + + + + Gets or sets the with the specified key. + + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in array at which copying begins. + array is null. + The type of the source cannot be cast automatically to the type of the destination array. + index is less than zero. + array is multidimensional.-or- index is equal to or greater than the length of array.-or- The number of elements in the source is greater than the available space from index to the end of the destination array. + + + + Gets the number of elements contained in the . + + The number of elements contained in the . + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + true if access to the is synchronized (thread safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the . + + An object that can be used to synchronize access to the . + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Abstract implementation of . + + + + + Identifies a property should be represented as a nested component. + + + + + Applies no prefix. + + + + + Gets or sets the prefix. + + The prefix. + + + + Identifies the dictionary adapter types. + + + + + Assigns a specific dictionary key. + + + + + Identifies an interface or property to be pre-fetched. + + + + + Instructs fetching to occur. + + + + + Instructs fetching according to + + + + + Gets whether or not fetching should occur. + + + + + Assigns a property to a group. + + + + + Constructs a group assignment. + + The group name. + + + + Constructs a group assignment. + + The group name. + + + + Gets the group the property is assigned to. + + + + + Suppresses any on-demand behaviors. + + + + + Assigns a specific dictionary key. + + + + + Initializes a new instance of the class. + + The key. + + + + Initializes a new instance of the class. + + The compound key. + + + + Assigns a prefix to the keyed properties of an interface. + + + Key prefixes are not inherited by sub-interfaces. + + + + + Initializes a default instance of the class. + + + + + Initializes a new instance of the class. + + The prefix for the keyed properties of the interface. + + + + Gets the prefix key added to the properties of the interface. + + + + + Substitutes part of key with another string. + + + + + Initializes a new instance of the class. + + The old value. + The new value. + + + + Requests support for multi-level editing. + + + + + Generates a new GUID on demand. + + + + + Support for on-demand value resolution. + + + + + Specifies assignment by reference rather than by copying. + + + + + Removes a property if matches value. + + + + + Removes a property if null or empty string, guid or collection. + + + + + Provides simple string formatting from existing properties. + + + + + Gets the string format. + + + + + Gets the format properties. + + + + + Identifies a property should be represented as a delimited string value. + + + + + Gets the separator. + + + + + Converts all properties to strings. + + + + + Gets or sets the format. + + The format. + + + + Suppress property change notifications. + + + + + Assigns a prefix to the keyed properties using the interface name. + + + + + Indicates that underlying values are changeable and should not be cached. + + + + + Manages conversion between property values. + + + + + Initializes a new instance of the class. + + The converter. + + + + + + + + + Gets the effective dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if return only existing. + The effective property value. + + + + Uses Reflection.Emit to expose the properties of a dictionary + through a dynamic implementation of a typed interface. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wraps a with a dynamic object to expose a bit better looking API. + The implementation is trivial and assumes keys are s. + + + + + Contract for manipulating the Dictionary adapter. + + + + + Defines the contract for building typed dictionary adapters. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + The property descriptor. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the namedValues. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the namedValues. + + The type represented by T must be an interface with properties. + + + + + Gets the associated with the type. + + The typed interface. + The adapter meta-data. + + + + Gets the associated with the type. + + The typed interface. + The property descriptor. + The adapter meta-data. + + + + Gets the associated with the type. + + The typed interface. + Another from which to copy behaviors. + The adapter meta-data. + + + + Contract for traversing a . + + + + + Defines the contract for customizing dictionary access. + + + + + Determines relative order to apply related behaviors. + + + + + Copies the dictionary behavior. + + null if should not be copied. Otherwise copy. + + + + Defines the contract for building s. + + + + + Builds the dictionary behaviors. + + + + + Contract for creating additional Dictionary adapters. + + + + + Contract for editing the Dictionary adapter. + + + + + Contract for dictionary initialization. + + + + + Performs any initialization of the + + The dictionary adapter. + The dictionary behaviors. + + + + Defines the contract for building typed dictionary keys. + + + + + Builds the specified key. + + The dictionary adapter. + The current key. + The property. + The updated key + + + + Contract for dictionary meta-data initialization. + + + + + Initializes the given object. + + The dictionary adapter factory. + The dictionary adapter meta. + + + + + Determines whether the given behavior should be included in a new + object. + + A dictionary behavior or annotation. + True if the behavior should be included; otherwise, false. + + behaviors are always included, + regardless of the result of this method. + + + + + + Contract for managing Dictionary adapter notifications. + + + + + Defines the contract for retrieving dictionary values. + + + + + Gets the effective dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if return only existing. + The effective property value. + + + + Defines the contract for updating dictionary values. + + + + + Sets the stored dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if the property should be stored. + + + + Contract for validating Dictionary adapter. + + + + + Contract for dictionary validation. + + + + + Determines if is valid. + + The dictionary adapter. + true if valid. + + + + Validates the . + + The dictionary adapter. + The error summary information. + + + + Validates the for a property. + + The dictionary adapter. + The property to validate. + The property summary information. + + + + Invalidates any results cached by the validator. + + The dictionary adapter. + + + + Contract for property descriptor initialization. + + + + + Performs any initialization of the + + The property descriptor. + The property behaviors. + + + + + + + + + Initializes a new instance of the class. + + The name values. + + + + Gets a value indicating whether the object is read-only. + + true if the object is read-only; otherwise, false. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + key is null. + + + + Gets or sets the with the specified key. + + + + + Adapts the specified name values. + + The name values. + + + + Describes a dictionary property. + + + + + Initializes an empty class. + + + + + Initializes a new instance of the class. + + The property. + The annotations. + + + + Initializes a new instance class. + + + + + Copies an existing instance of the class. + + + + + + + + + + Gets the property name. + + + + + Gets the property type. + + + + + Gets the property. + + The property. + + + + Returns true if the property is dynamic. + + + + + Gets additional state. + + + + + Determines if property should be fetched. + + + + + Determines if property must exist first. + + + + + Determines if notifications should occur. + + + + + Gets the property behaviors. + + + + + Gets the type converter. + + The type converter. + + + + Gets the extended properties. + + + + + Gets the setter. + + The setter. + + + + Gets the key builders. + + The key builders. + + + + Gets the setter. + + The setter. + + + + Gets the getter. + + The getter. + + + + Gets the initializers. + + The initializers. + + + + Gets the meta-data initializers. + + The meta-data initializers. + + + + Gets the key. + + The dictionary adapter. + The key. + The descriptor. + + + + Gets the property value. + + The dictionary adapter. + The key. + The stored value. + The descriptor. + true if return only existing. + + + + Sets the property value. + + The dictionary adapter. + The key. + The value. + The descriptor. + + + + Adds a single behavior. + + The behavior. + + + + Adds the behaviors. + + The behaviors. + + + + Adds the behaviors. + + The behaviors. + + + + Copies the behaviors to the other + + + + + Copies the + + + + + Contract for value matching. + + + + + Contract for dynamic value resolution. + + + + + Contract for typed dynamic value resolution. + + + + + + This is an abstract implementation + that deals with methods that can be abstracted away + from underlying implementations. + + + AbstractConfiguration makes easier to implementers + to create a new version of + + + + + Gets node attributes. + + + All attributes of the node. + + + + + Gets all child nodes. + + The of child nodes. + + + + Gets the name of the . + + + The Name of the . + + + + + Gets the value of . + + + The Value of the . + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the conversion fails. + + The Value converted into the specified type. + + + + A collection of objects. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Creates a new instance of ConfigurationCollection. + + + + + is a interface encapsulating a configuration node + used to retrieve configuration values. + + + + + Gets the name of the node. + + + The Name of the node. + + + + + Gets the value of the node. + + + The Value of the node. + + + + + Gets an of + elements containing all node children. + + The Collection of child nodes. + + + + Gets an of the configuration attributes. + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the conversion fails. + + The Value converted into the specified type. + + + + Initializes a new instance of the class. + + The name. + + + + Gets the value of . + + + The Value of the . + + + + + Deserializes the specified node into an abstract representation of configuration. + + The node. + + + + If a config value is an empty string we return null, this is to keep + backward compatibility with old code + + + + + Helper class for retrieving attributes. + + + + + Gets the attribute. + + The type. + The type attribute. + + + + Gets the attributes. Does not consider inherited attributes! + + The type. + The type attributes. + + + + Gets the attribute. + + The member. + The member attribute. + + + + Gets the attributes. Does not consider inherited attributes! + + The member. + The member attributes. + + + + Gets the type attribute. + + The type. + The type attribute. + + + + Gets the type attributes. + + The type. + The type attributes. + + + + Gets the type converter. + + The member. + + + + Checks whether or not collection is null or empty. Assumes collection can be safely enumerated multiple times. + + + + + Generates a HashCode for the contents for the list. Order of items does not matter. + + The type of object contained within the list. + The list. + The generated HashCode. + + + + Determines if two lists are equivalent. Equivalent lists have the same number of items and each item is found within the other regardless of respective position within each. + + The type of object contained within the list. + The first list. + The second list. + True if the two lists are equivalent. + + + + Constant to use when making assembly internals visible to Castle.Core + [assembly: InternalsVisibleTo(CoreInternalsVisible.ToCastleCore)] + + + + + Constant to use when making assembly internals visible to proxy types generated by DynamicProxy. Required when proxying internal types. + [assembly: InternalsVisibleTo(CoreInternalsVisible.ToDynamicProxyGenAssembly2)] + + + + + Creates a new lock. + + + + + Find the best available name to describe a type. + + + Usually the best name will be , but + sometimes that's null (see http://msdn.microsoft.com/en-us/library/system.type.fullname%28v=vs.110%29.aspx) + in which case the method falls back to . + + the type to name + the best name + + + + Defines that the implementation wants a + in order to + access other components. The creator must be aware + that the component might (or might not) implement + the interface. + + + Used by Castle Project components to, for example, + gather logging factories + + + + + Increments IServiceProvider with a generic service resolution operation. + + + + + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Gets the configuration file. + + i.e. log4net.config + + + + Gets the configuration file. + + i.e. log4net.config + + + + The Logger sending everything to the standard output streams. + This is mainly for the cases when you have a utility that + does not have a logger to supply. + + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug and the Name + set to String.Empty. + + + + + Creates a new ConsoleLogger with the Name + set to String.Empty. + + The logs Level. + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug. + + The logs Name. + + + + Creates a new ConsoleLogger. + + The logs Name. + The logs Level. + + + + A Common method to log. + + The level of logging + The name of the logger + The Message + The Exception + + + + Returns a new ConsoleLogger with the name + added after this loggers name, with a dot in between. + + The added hierarchical name. + A new ConsoleLogger. + + + + Interface for Context Properties implementations + + + + This interface defines a basic property get set accessor. + + + Based on the ContextPropertiesBase of log4net, by Nicko Cadell. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Provides an interface that supports and + allows the storage and retrieval of Contexts. These are supported in + both log4net and NLog. + + + + + Exposes the Global Context of the extended logger. + + + + + Exposes the Thread Context of the extended logger. + + + + + Exposes the Thread Stack of the extended logger. + + + + + Provides a factory that can produce either or + classes. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Manages logging. + + + This is a facade for the different logging subsystems. + It offers a simplified interface that follows IOC patterns + and a simplified priority/level/severity abstraction. + + + + + Determines if messages of priority "trace" will be logged. + + True if "trace" messages will be logged. + + + + Determines if messages of priority "debug" will be logged. + + True if "debug" messages will be logged. + + + + Determines if messages of priority "error" will be logged. + + True if "error" messages will be logged. + + + + Determines if messages of priority "fatal" will be logged. + + True if "fatal" messages will be logged. + + + + Determines if messages of priority "info" will be logged. + + True if "info" messages will be logged. + + + + Determines if messages of priority "warn" will be logged. + + True if "warn" messages will be logged. + + + + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + + The Subname of this logger. + The New ILogger instance. + If the name has an empty element name. + + + + Logs a trace message. + + The message to log + + + + Logs a trace message with lazily constructed message. The message will be constructed only if the is true. + + + + + Logs a trace message. + + The exception to log + The message to log + + + + Logs a trace message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a trace message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a trace message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a trace message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The message to log + + + + Logs a debug message with lazily constructed message. The message will be constructed only if the is true. + + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message with lazily constructed message. The message will be constructed only if the is true. + + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message with lazily constructed message. The message will be constructed only if the is true. + + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs a info message with lazily constructed message. The message will be constructed only if the is true. + + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message with lazily constructed message. The message will be constructed only if the is true. + + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Manages the instantiation of s. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + The Level Filtered Logger class. This is a base class which + provides a LogLevel attribute and reroutes all functions into + one Log method. + + + + + Creates a new LevelFilteredLogger. + + + + + The LoggerLevel that this logger + will be using. Defaults to LoggerLevel.Off + + + + + The name that this logger will be using. + Defaults to String.Empty + + + + + Logs a trace message. + + The message to log + + + + Logs a trace message. + + A functor to create the message + + + + Logs a trace message. + + The exception to log + The message to log + + + + Logs a trace message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a trace message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a trace message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a trace message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The message to log + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Determines if messages of priority "trace" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "debug" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "info" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "warn" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "error" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "fatal" will be logged. + + true if log level flags include the bit + + + + Implementors output the log content by implementing this method only. + Note that exception can be null + + + + + Supporting Logger levels. + + + + + Logging will be off + + + + + Fatal logging level + + + + + Error logging level + + + + + Warn logging level + + + + + Info logging level + + + + + Debug logging level + + + + + Trace logging level + + + + + NullLogFactory used when logging is turned off. + + + + + Creates an instance of ILogger with the specified name. + + Name. + + + + Creates an instance of ILogger with the specified name and LoggerLevel. + + Name. + Level. + + + + The Null Logger class. This is useful for implementations where you need + to provide a logger to a utility class, but do not want any output from it. + It also helps when you have a utility that does not have a logger to supply. + + + + + Returns empty context properties. + + + + + Returns empty context properties. + + + + + Returns empty context stacks. + + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + Returns this NullLogger. + + Ignored + This ILogger instance. + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + The Stream Logger class. This class can stream log information + to any stream, it is suitable for storing a log file to disk, + or to a MemoryStream for testing your components. + + + This logger is not thread safe. + + + + + Creates a new StreamLogger with default encoding + and buffer size. Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + + + Creates a new StreamLogger with default buffer size. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + + + Creates a new StreamLogger. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + The buffer size that will be used for this stream. + + + + + + Creates a new StreamLogger with + Debug as default Level. + + The name of the log. + The StreamWriter the log will write to. + + + + Creates outputting + to files. The name of the file is derived from the log name + plus the 'log' extension. + + + + + The TraceLogger sends all logging to the System.Diagnostics.TraceSource + built into the .net framework. + + + Logging can be configured in the system.diagnostics configuration + section. + + If logger doesn't find a source name with a full match it will + use source names which match the namespace partially. For example you can + configure from all castle components by adding a source name with the + name "Castle". + + If no portion of the namespace matches the source named "Default" will + be used. + + + + + Build a new trace logger based on the named TraceSource + + The name used to locate the best TraceSource. In most cases comes from the using type's fullname. + + + + Build a new trace logger based on the named TraceSource + + The name used to locate the best TraceSource. In most cases comes from the using type's fullname. + The default logging level at which this source should write messages. In almost all cases this + default value will be overridden in the config file. + + + + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + + The Subname of this logger. + The New ILogger instance. + + + + Used to create the TraceLogger implementation of ILogger interface. See . + + + + + General purpose class to represent a standard pair of values. + + Type of the first value + Type of the second value + + + + Constructs a pair with its values + + + + + List of utility methods related to dynamic proxy operations + + + + + Determines whether the specified type is a proxy generated by + DynamicProxy (1 or 2). + + The type. + + true if it is a proxy; otherwise, false. + + + + + Readonly implementation of which uses an anonymous object as its source. Uses names of properties as keys, and property values as... well - values. Keys are not case sensitive. + + + + + Initializes a new instance of the class. + + The target. + + + + Gets the number of elements contained in the . + + The number of elements contained in the . + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + true if access to the is synchronized (thread safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the . + + An object that can be used to synchronize access to the . + + + + Gets a value indicating whether the object is read-only. + + true if the object is read-only; otherwise, false. + + + + Gets or sets the with the specified key. + + + + + Gets an object containing the keys of the object. + + An object containing the keys of the object. + + + + Gets an object containing the values in the object. + + An object containing the values in the object. + + + + Gets a value indicating whether the object has a fixed size. + + true if the object has a fixed size; otherwise, false. + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + is null. + An element with the same key already exists in the object. + The is read-only.-or- The has a fixed size. + + + + Removes all elements from the object. + + The object is read-only. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + + is null. + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + is null. + The object is read-only.-or- The has a fixed size. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source is greater than the available space from to the end of the destination . + The type of the source cannot be cast automatically to the type of the destination . + + + + Returns an object for the object. + + + An object for the object. + + + + + Reads values of properties from and inserts them into using property names as keys. + + + + + + + + + + This returns a new stream instance each time it is called. + It is the responsibility of the caller to dispose of this stream + + + + + + + + + + + + + + + Represents a 'streamable' resource. Can + be a file, a resource in an assembly. + + + + + Only valid for resources that + can be obtained through relative paths + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + Returns an instance of + created according to the relativePath + using itself as the root. + + + + + Depicts the contract for resource factories. + + + + + Used to check whether the resource factory + is able to deal with the given resource + identifier. + + + Implementors should return true + only if the given identifier is supported + by the resource factory + + + + + Creates an instance + for the given resource identifier + + + + + Creates an instance + for the given resource identifier + + + + + Adapts a static string content as an + + + + + Enable access to files on network shares + + + + + Interface describing elements composing generated type + + + + + Performs some basic screening and invokes the + to select methods. + + + + + Encapsulates the information needed to build an attribute. + + + Arrays passed to this class as constructor arguments or property or field values become owned by this class. + They should not be mutated after creation. + + + + + Default implementation of interface producing in-memory proxy assemblies. + + + + + Initializes a new instance of the class with new . + + + + + Initializes a new instance of the class. + + The module scope for generated proxy types. + + + + Provides instructions that a user could follow to make a type or method in + visible to DynamicProxy. + The assembly containing the type or method. + Instructions that a user could follow to make a type or method visible to DynamicProxy. + + + + Creates a message to inform clients that a proxy couldn't be created due to reliance on an + inaccessible type (perhaps itself). + + the inaccessible type that prevents proxy creation + the type that couldn't be proxied + + + + Base class that exposes the common functionalities + to proxy generation. + + + + + It is safe to add mapping (no mapping for the interface exists) + + + + + Generates a parameters constructor that initializes the proxy + state with just to make it non-null. + + This constructor is important to allow proxies to be XML serializable + + + + + + Initializes a new instance of the class. + + Target element. This is either target type or target method for invocation types. + The type of the proxy. This is base type for invocation types. + The interfaces. + The options. + + + + Initializes a new instance of the class. + + Type of the target. + The interfaces. + The options. + + + + Provides appropriate Ldc.X opcode for the type of primitive value to be loaded. + + + + + Provides appropriate Ldind.X opcode for + the type of primitive value to be loaded indirectly. + + + + + Emits a load indirect opcode of the appropriate type for a value or object reference. + Pops a pointer off the evaluation stack, dereferences it and loads + a value of the specified type. + + + + + Emits a load opcode of the appropriate kind for a constant string or + primitive value. + + + + + Emits a load opcode of the appropriate kind for the constant default value of a + type, such as 0 for value types and null for reference types. + + + + + Emits a store indirectopcode of the appropriate type for a value or object reference. + Pops a value of the specified type and a pointer off the evaluation stack, and + stores the value. + + + + + Wraps a reference that is passed + ByRef and provides indirect load/store support. + + + + + Provides appropriate Stind.X opcode + for the type of primitive value to be stored indirectly. + + + + + Represents the scope of uniqueness of names for types and their members + + + + + Gets a unique name based on + + Name suggested by the caller + Unique name based on . + + Implementers should provide name as closely resembling as possible. + Generally if no collision occurs it is suggested to return suggested name, otherwise append sequential suffix. + Implementers must return deterministic names, that is when is called twice + with the same suggested name, the same returned name should be provided each time. Non-deterministic return + values, like appending random suffices will break serialization of proxies. + + + + + Returns new, disposable naming scope. It is responsibility of the caller to make sure that no naming collision + with enclosing scope, or other subscopes is possible. + + New naming scope. + + + + Generates the constructor for the class that extends + + + + + + Initializes a new instance of the class. + + The name. + Type declaring the original event being overridden, or null. + The event delegate type. + The add method. + The remove method. + The attributes. + + + + Returns the methods implemented by a type. Use this instead of Type.GetMethods() to work around a CLR issue + where duplicate MethodInfos are returned by Type.GetMethods() after a token of a generic type's method was loaded. + + + + + Exposes means to change target objects of proxies and invocations. + + + + + Changes the target object () of current . + + The new value of target of invocation. + + Although the method takes the actual instance must be of type assignable to , otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + Permanently changes the target object of the proxy. This does not affect target of the current invocation. + + The new value of target of the proxy. + + Although the method takes the actual instance must be of type assignable to proxy's target type, otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + Provides the main DynamicProxy extension point that allows member interception. + + + + + Provides an extension point that allows proxies to choose specific interceptors on + a per method basis. + + + + + Selects the interceptors that should intercept calls to the given . + + The type of the target object. + The method that will be intercepted. + All interceptors registered with the proxy. + An array of interceptors to invoke upon calling the . + + This method is called only once per proxy instance, upon the first call to the + . Either an empty array or null are valid return values to indicate + that no interceptor should intercept calls to the method. Although it is not advised, it is + legal to return other implementations than these provided in + . + + + + + Encapsulates an invocation of a proxied method. + + + + + Gets the arguments that the has been invoked with. + + The arguments the method was invoked with. + + + + Gets the generic arguments of the method. + + The generic arguments, or null if not a generic method. + + + + Gets the object on which the invocation is performed. This is different from proxy object + because most of the time this will be the proxy target object. + + + The invocation target. + + + + Gets the representing the method being invoked on the proxy. + + The representing the method being invoked. + + + + For interface proxies, this will point to the on the target class. + + The method invocation target. + + + + Gets the proxy object on which the intercepted method is invoked. + + Proxy object on which the intercepted method is invoked. + + + + Gets or sets the return value of the method. + + The return value of the method. + + + + Gets the type of the target object for the intercepted method. + + The type of the target object. + + + + Gets the value of the argument at the specified . + + The index. + The value of the argument at the specified . + + + + Returns the concrete instantiation of the on the proxy, with any generic + parameters bound to real types. + + + The concrete instantiation of the on the proxy, or the if + not a generic method. + + + Can be slower than calling . + + + + + Returns the concrete instantiation of , with any + generic parameters bound to real types. + For interface proxies, this will point to the on the target class. + + The concrete instantiation of , or + if not a generic method. + + In debug builds this can be slower than calling . + + + + + Proceeds the call to the next interceptor in line, and ultimately to the target method. + + + Since interface proxies without a target don't have the target implementation to proceed to, + it is important, that the last interceptor does not call this method, otherwise a + will be thrown. + + + + + Returns an object describing the operation for this + at this specific point during interception. + + + + + Overrides the value of an argument at the given with the + new provided. + + + This method accepts an , however the value provided must be compatible + with the type of the argument defined on the method, otherwise an exception will be thrown. + + The index of the argument to override. + The new value for the argument. + + + + Describes the operation for an + at a specific point during interception. + + + + + Executes the operation described by this instance. + + There is no interceptor, nor a proxy target object, to proceed to. + + + + Attributes should be replicated if they are non-inheritable, + but there are some special cases where the attributes means + something to the CLR, where they should be skipped. + + + + + Determines whether the specified method is internal. + + The method. + + true if the specified method is internal; otherwise, false. + + + + + Determines whether this assembly has internals visible to dynamic proxy. + + The assembly to inspect. + + + + Checks if the method is public or protected. + + + + + Returns list of all unique interfaces implemented given types, including their base interfaces. + + + + + Checks whether the specified is a delegate type (i.e. a direct subclass of ). + + + + + Abstracts the implementation of proxy type construction. + + + + + Gets or sets the that this logs to. + + + + + Gets the associated with this builder. + + The module scope associated with this builder. + + + + Creates a proxy type for given , implementing , using provided. + + The class type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified class and interfaces. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type that proxies calls to members on , implementing , using provided. + + The interface type to proxy. + Additional interface types to proxy. + Type implementing on which calls to the interface members should be intercepted. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface that 'proceeds' executions to the specified target. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given and that delegates all calls to the provided interceptors and allows interceptors to switch the actual target of invocation. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface(s) that delegate all executions to the specified interceptors + and uses an instance of the interface as their targets (i.e. ), rather than a class. All classes should then implement interface, + to allow interceptors to switch invocation target with instance of another type implementing called interface. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given that delegates all calls to the provided interceptors. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface and additional interfaces that delegate all executions to the specified interceptors. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Used during the target type inspection process. Implementors have a chance to customize the + proxy generation process. + + + + + Invoked by the generation process to notify that the whole process has completed. + + + + + Invoked by the generation process to notify that a member was not marked as virtual. + + The type which declares the non-virtual member. + The non-virtual member. + + This method gives an opportunity to inspect any non-proxyable member of a type that has + been requested to be proxied, and if appropriate - throw an exception to notify the caller. + + + + + Invoked by the generation process to determine if the specified method should be proxied. + + The type which declares the given method. + The method to inspect. + True if the given method should be proxied; false otherwise. + + + + Provides proxy objects for classes and interfaces. + + + + + Gets or sets the that this log to. + + + + + Gets the proxy builder instance used to generate proxy types. + + The proxy builder. + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + Object proxying calls to members of on object. + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Exposes access to the target object and interceptors of proxy objects. + This is a DynamicProxy infrastructure interface and should not be implemented yourself. + + + + + Get the proxy target (note that null is a valid target!) + + + + + Set the proxy target. + + New proxy target. + + + + Gets the interceptors for the proxy + + + + + Because we need to cache the types based on the mixed in mixins, we do the following here: + - Get all the mixin interfaces + - Sort them by full name + - Return them by position + + The idea is to have reproducible behavior for the case that mixins are registered in different orders. + This method is here because it is required + + + + + The default file name used when the assembly is saved using . + + + + + The default assembly (simple) name used for the assemblies generated by a instance. + + + + + Initializes a new instance of the class; assemblies created by this instance will not be saved. + + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved. + + If set to true saves the generated module. + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + Naming scope used to provide unique names to generated types and their members (usually via sub-scopes). + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Users of this should use this lock when accessing the cache. + + + + + Returns a type from this scope's type cache, or null if the key cannot be found. + + The key to be looked up in the cache. + The type from this scope's type cache matching the key, or null if the key cannot be found + + + + Registers a type in this scope's type cache. + + The key to be associated with the type. + The type to be stored in the cache. + + + + Gets the key pair used to sign the strong-named assembly generated by this . + + + + + Gets the strong-named module generated by this scope, or if none has yet been generated. + + The strong-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the strongly named module generated by this scope. + + The file name of the strongly named module generated by this scope. + + + + Gets the weak-named module generated by this scope, or if none has yet been generated. + + The weak-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the weakly named module generated by this scope. + + The file name of the weakly named module generated by this scope. + + + + Gets the specified module generated by this scope, creating a new one if none has yet been generated. + + If set to true, a strong-named module is returned; otherwise, a weak-named module is returned. + A strong-named or weak-named module generated by this scope, as specified by the parameter. + + + + Gets the strong-named module generated by this scope, creating a new one if none has yet been generated. + + A strong-named module generated by this scope. + + + + Gets the weak-named module generated by this scope, creating a new one if none has yet been generated. + + A weak-named module generated by this scope. + + + + allows customization of the behavior of proxies created by + an (or proxy types generated by an ). + + You should not modify an instance of once it has been + used to create a proxy (or proxy type). + + + + + + Initializes a new instance of the class. + + The hook. + + + + Initializes a new instance of the class. + + + + + Gets or sets the that should be used during proxy type + generation. Defaults to an instance of . + + You should not modify this property once this instance + has been used to create a proxy. + + + + + + Gets or sets the that should be used by created proxies + to determine which interceptors to use for an interception. If set to + (which is the default), created proxies will not use any selector. + + You should not modify this property once this instance + has been used to create a proxy. + + + + + + Gets or sets the class type from which generated interface proxy types will be derived. + Defaults to (). + + You should not modify this property once this instance + has been used to create a proxy. + + + + + + Gets the collection of additional custom attributes that will be put on generated proxy types. + This collection is initially empty. + + You should not modify this collection once this instance + has been used to create a proxy. + + + + + + Adds a delegate type to the list of mixins that will be added to generated proxies. + That is, generated proxies will have a `Invoke` method with a signature matching that + of the specified . + + You should not call this method once this instance + has been used to create a proxy. + + + The delegate type whose `Invoke` method should be reproduced in generated proxies. + is . + is not a delegate type. + + + + Adds a delegate to be mixed into generated proxies. The + will act as the target for calls to a `Invoke` method with a signature matching that + of the delegate. + + You should not call this method once this instance + has been used to create a proxy. + + + The delegate that should act as the target for calls to `Invoke` methods with a matching signature. + is . + + + + Mixes the interfaces implemented by the specified object into + created proxies, and uses as the target for these mixed-in interfaces. + + You should not call this method once this instance + has been used to create a proxy. + + + The object that should act as the target for all of its implemented interfaces' methods. + is . + is an instance of . + + + + Provides proxy objects for classes and interfaces. + + + + + Initializes a new instance of the class. + + Proxy types builder. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + If true forces all types to be generated into an unsigned module. + + + + Gets or sets the that this log to. + + + + + Gets the proxy builder instance used to generate proxy types. + + The proxy builder. + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + Object proxying calls to members of on object. + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates the proxy type for class proxy with given class, implementing given and using provided . + + The base class for proxy type. + The interfaces that proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + Actual type that the proxy type will encompass. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target interface for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy without target for given interface, implementing given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates a delegate of the specified type to a suitable `Invoke` method + on the given instance. + + The proxy instance to which the delegate should be bound. + The type of delegate that should be created. + + The does not have an `Invoke` method that is compatible with + the requested type. + + + + + Creates a delegate of the specified type to a suitable `Invoke` method + on the given instance. + + The proxy instance to which the delegate should be bound. + The type of delegate that should be created. + + The does not have an `Invoke` method that is compatible with + the requested . + + + + + Checks whether the specified method is accessible to DynamicProxy. + The method to check. + true if the method is accessible to DynamicProxy, false otherwise. + + + + Checks whether the specified method is accessible to DynamicProxy. + The method to check. + If the method is accessible to DynamicProxy, null; otherwise, an explanation of why the method is not accessible. + true if the method is accessible to DynamicProxy, false otherwise. + + + + Checks whether the specified type is accessible to DynamicProxy. + The type to check. + true if the type is accessible to DynamicProxy, false otherwise. + + + + Determines whether this assembly has internals visible to DynamicProxy. + + The assembly to inspect. + + + + Checks whether the specified method is accessible to DynamicProxy. + Unlike with , the declaring type's accessibility is ignored. + + The method to check. + true if the method is accessible to DynamicProxy, false otherwise. + + + + Determines whether the specified method is internal. + + The method. + + true if the specified method is internal; otherwise, false. + + + + + Holds objects representing methods of class. + + + + diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml.meta b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml.meta rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/readme.txt b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/readme.txt similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/readme.txt rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/readme.txt diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/readme.txt.meta b/Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/readme.txt.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/readme.txt.meta rename to Assets/PlayroomKit/Editor/dependencies/Castle.Core.5.1.1/readme.txt.meta diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0.meta b/Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0.meta rename to Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0.meta diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec b/Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec similarity index 98% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec rename to Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec index b54df150..6e302298 100644 --- a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec +++ b/Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec @@ -1,27 +1,27 @@ - - - - NSubstitute - 5.1.0 - Anthony Egerton,David Tchepak,Alexandr Nikitin,Oleksandr Povar - BSD-3-Clause - https://licenses.nuget.org/BSD-3-Clause - icon.png - https://nsubstitute.github.io/ - NSubstitute is a friendly substitute for .NET mocking libraries. It has a simple, succinct syntax to help developers write clearer tests. NSubstitute is designed for Arrange-Act-Assert (AAA) testing and with Test Driven Development (TDD) in mind. - mocking mocks testing unit-testing TDD AAA - - - - - - - - - - - - - - + + + + NSubstitute + 5.1.0 + Anthony Egerton,David Tchepak,Alexandr Nikitin,Oleksandr Povar + BSD-3-Clause + https://licenses.nuget.org/BSD-3-Clause + icon.png + https://nsubstitute.github.io/ + NSubstitute is a friendly substitute for .NET mocking libraries. It has a simple, succinct syntax to help developers write clearer tests. NSubstitute is designed for Arrange-Act-Assert (AAA) testing and with Test Driven Development (TDD) in mind. + mocking mocks testing unit-testing TDD AAA + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec.meta b/Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec.meta rename to Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec.meta diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/icon.png b/Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/icon.png similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/icon.png rename to Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/icon.png diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/icon.png.meta b/Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/icon.png.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/icon.png.meta rename to Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/icon.png.meta diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib.meta b/Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/lib.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib.meta rename to Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/lib.meta diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0.meta b/Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/lib/netstandard2.0.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0.meta rename to Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/lib/netstandard2.0.meta diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll b/Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll rename to Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll.meta b/Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll.meta rename to Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll.meta diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml b/Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml similarity index 98% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml rename to Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml index f287fde1..ea71327e 100644 --- a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml +++ b/Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml @@ -1,1410 +1,1410 @@ - - - - NSubstitute - - - - - Argument matchers used for specifying calls to substitutes. - - - - - This type can be used with any matcher to match a generic type parameter. - - - If the generic type parameter has constraints, you will have to create a derived class/struct that - implements those constraints. - - - - - Match any argument value compatible with type . - - - - - Match argument that is equal to . - - - - - Match argument that satisfies . - If the throws an exception for an argument it will be treated as non-matching. - - - - - Match argument that satisfies . - If the throws an exception for an argument it will be treated as non-matching. - - - - - Invoke any argument whenever a matching call is made to the substitute. - - - - - Invoke any argument with specified argument whenever a matching call is made to the substitute. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - - Arguments to pass to delegate. - - - - Capture any argument compatible with type and use it to call the function - whenever a matching call is made to the substitute. - - - - - Capture any argument compatible with type and use it to call the function - whenever a matching call is made to the substitute. - - - - - Alternate version of matchers for compatibility with pre-C#7 compilers - which do not support ref return types. Do not use unless you are unable to use . - - For more information see Compatibility Argument - Matchers in the NSubstitute documentation. - - - - - Match any argument value compatible with type . - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Match argument that is equal to . - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Match argument that satisfies . - If the throws an exception for an argument it will be treated as non-matching. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Match argument that satisfies . - If the throws an exception for an argument it will be treated as non-matching. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified argument whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - Arguments to pass to delegate. - - - - Capture any argument compatible with type and use it to call the function - whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Capture any argument compatible with type and use it to call the function - whenever a matching call is made to the substitute. - - - - - Perform this chain of callbacks and/or always callback when called. - - - - - Perform as first in chain of callback when called. - - - - - - - Perform this action always when callback is called. - - - - - - - Throw exception returned by function as first callback in chain of callback when called. - - - - - - - Throw this exception as first callback in chain of callback when called. - - - - - - - Throw exception returned by function always when callback is called. - - The type of the exception. - The throw this. - - - - - Throw this exception always when callback is called. - - The type of the exception. - The exception. - - - - - Perform this action once in chain of called callbacks. - - - - - Keep doing this action after the other callbacks have run. - - - - - Keep throwing this exception after the other callbacks have run. - - - - - Keep throwing this exception after the other callbacks have run. - - - - - Throw exception returned by function once when called in a chain of callbacks. - - The type of the exception - Produce the exception to throw for a CallInfo - - - - Throw this exception once when called in a chain of callbacks. - - The type of the exception - The exception to throw - - - - Perform the given action for every call. - - The action to perform for every call - - - - Clear all the received calls - - - - - Clear all configured return results (including auto-substituted values). - - - - - Clear all call actions configured for this substitute (via When..Do, Arg.Invoke, and Arg.Do) - - - - - Clears all received calls and configured return values and callbacks. - - - - - Alternate version of matchers for compatibility with pre-C#7 compilers - which do not support ref return types. Do not use unless you are unable to use . - - provides a non-static version of , which can make it easier - to use from an abstract base class. You can get a reference to this instance using the static - field. - - For more information see Compatibility Argument - Matchers in the NSubstitute documentation. - - - - - Get the CompatArg instance. - - - - - Match any argument value compatible with type . - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Match argument that is equal to . - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Match argument that satisfies . - If the throws an exception for an argument it will be treated as non-matching. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Match argument that satisfies . - If the throws an exception for an argument it will be treated as non-matching. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified argument whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - Arguments to pass to delegate. - - - - Capture any argument compatible with type and use it to call the function - whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Capture any argument compatible with type and use it to call the function - whenever a matching call is made to the substitute. - - - - - Enqueues a matcher for the method argument in current position and returns the value which should be - passed back to the method you invoke. - - - - - Provides a specification for arguments for use with . - Can additionally implement to give descriptions when arguments do not match. - - - - - Checks whether the satisfies the condition of the matcher. - If this throws an exception the argument will be treated as non-matching. - - - - - Provides a specification for arguments for use with . - Can additionally implement to give descriptions when arguments do not match. - - Matches arguments of type or compatible type. - - - - Checks whether the satisfies the condition of the matcher. - If this throws an exception the argument will be treated as non-matching. - - - - - - - - - - - - - - - - - Performance optimization. Allows to mark call as deleted without allocating extra wrapper. - To play safely, we track ownership, so object can be re-used only once. - - - - - Wrapper to track that particular entry was deleted. - That is needed because concurrent collections don't have a Delete method. - Notice, in most cases the original instance will be used as a wrapper itself. - - - - - Gets the nth argument to this call. - - Index of argument - The value of the argument at the given index - - - - Get the arguments passed to this call. - - Array of all arguments passed to this call - - - - Gets the types of all the arguments passed to this call. - - Array of types of all arguments passed to this call - - - - Gets the argument of type `T` passed to this call. This will throw if there are no arguments - of this type, or if there is more than one matching argument. - - The type of the argument to retrieve - The argument passed to the call, or throws if there is not exactly one argument of this type - - - - Gets the argument passed to this call at the specified zero-based position, converted to type `T`. - This will throw if there are no arguments, if the argument is out of range or if it - cannot be converted to the specified type. - - The type of the argument to retrieve - The zero-based position of the argument to retrieve - The argument passed to the call, or throws if there is not exactly one argument of this type - - - - Adds a callback to execute for matching calls. - - an action to call - - - - - Creates a new container based on the current one, - which can be configured to override the existing registrations without affecting the existing container. - - - - - Create an explicit scope, so all dependencies with the lifetime - are preserved for multiple resolve requests. - - - - - Decorates the original implementation with a custom decorator. - The factory method is provided with an original implementation instance. - The lifetime of decorated implementation is used. - - - - - Tiny and very limited implementation of the DI services. - Container supports the following features required by NSubstitute: - - Registration by type with automatic constructor injection - - Registration of factory methods for the complex objects - - Support of the most required lifetimes: - - - - - - - - Immutability (via interfaces) and customization by creating a nested container - - - - - Value is created only once. - - - - - Value is created only once per scope. Allows to share the same instance across the objects in the same graph. - If no explicit scope is created, an implicit scope is created per single resolve request. - - - - - New value is created for each time. - - - - - The default NSubstitute registrations. Feel free to configure the existing container to customize - and override NSubstitute parts. - - - - - Checks if the instance can be used when a is expected. - - - - - Join the using . - - - - - Tries to cast sequence to array first before making a new array sequence. - - - - - Gets or sets whether base method should be called by default. - - - - - Specifies whether base method should be always ignored for the matching call. - If method is both explicitly excluded and included, base method is _not_ called. - - - - - Specifies whether base method should be called for the matching call. - If method is both explicitly excluded and included, base method is _not_ called. - - - - - Tests whether base method should be called for the call given the existing configuration. - - - - - Specifies whether base method should be called by default. - - - This configuration is considered only when base method exists (e.g. you created a substitute for - the AbstractType with method implementation). - - - - - Factory method which creates from the . - - - - - Describes how the does not match the condition specified by this class, or - if a detailed description can not be provided for the argument. - - - Description of the non-match, or if no description can be provided. - - - - Performance optimization. Allows to not construct if configured result doesn't depend on it. - - - - - A thread bound state of the NSubstitute context. Usually this API is used to provide the fluent - features of the NSubstitute. - - - - - Sets the route to use for the next call dispatch on the current thread for the specified . - - - - - Returns the previously configured next route and resets the stored value. - If route was configured for the different router, returns and persist the route info. - - - - - Returns the previously set arguments factory and resets the stored value. - - - - - Invokes the passed callback in a context of the specified query. - - - - - Particularly poor implementation of Maybe/Option type. - This is just filling an immediate need; use FSharpOption or XSharpx or similar for a - real implementation. - - - - - - Delegates to ThreadLocal<T>, but wraps Value property access in try/catch to swallow ObjectDisposedExceptions. - These can occur if the Value property is accessed from the finalizer thread. Because we can't detect this, we'll - just swallow the exception (the finalizer thread won't be using any of the values from thread local storage anyway). - - - - - Create a substitute for the given types. - - - - - - - - Create an instance of the given types, with calls configured to call the base implementation - where possible. Parts of the instance can be substituted using - Returns(). - - - - - - - - Perform this action when called. - - - - - - Perform this configured callback when called. - - - - - - Do not call the base implementation on future calls. For use with partial substitutes. - - - - - Call the base implementation of future calls. For use with non-partial class substitutes. - - - - - Throw the specified exception when called. - - - - - Throw an exception of the given type when called. - - - - - Throw an exception generated by the specified function when called. - - - - - Clears received calls, configured return values and/or call actions for this substitute. - - - - Specifies what to clear on the substitute. Can be combined with | to - clear multiple aspects at once. - - - - - - A hint for the NSubstitute that the subsequent method/property call is about to be configured. - For example: substitute.Configure().GetValue().Returns(1,2,3); - - NOTICE, you _don't need_ to invoke this method for the basic configuration scenarios. - Ensure you don't overuse this method and it is applied only if strictly required. - - - Due to the NSubstitute configuration syntax it is often impossible to recognise during the method call - dispatch whether this is a setup phase or a regular method call. - Usually it doesn't matter, however sometimes method invocation could lead to undesired side effects - (e.g. the previously configured value is returned, base method is invoked). In that case you might want to - provide NSubstitute with a hint that you are configuring a method, so it handles the call in configuration mode. - - - - - - Configure default return value for all methods that return the specified type - - - - - - - - - Configure default return value for all methods that return the specified type, calculated by a function - - - - - - - - - Throw an exception for this call. - - - Exception to throw - - - - - Throw an exception of the given type for this call. - - Type of exception to throw - - - - - - Throw an exception for this call, as generated by the specified function. - - - Func creating exception object - - - - - Throw an exception for this call made with any arguments. - - - Exception to throw - - - - - Throws an exception of the given type for this call made with any arguments. - - Type of exception to throw - - - - - - Throws an exception for this call made with any arguments, as generated by the specified function. - - - Func creating exception object - - - - - Throw an exception for this call. - - - Exception to throw - - - - - Throw an exception for this call. - - - Exception to throw - - - - - Throw an exception of the given type for this call. - - Type of exception to throw - - - - - - Throw an exception for this call, as generated by the specified function. - - - Func creating exception object - - - - - Throw an exception for this call, as generated by the specified function. - - - Func creating exception object - - - - - Throw an exception for this call made with any arguments. - - - Exception to throw - - - - - Throw an exception for this call made with any arguments. - - - Exception to throw - - - - - Throws an exception of the given type for this call made with any arguments. - - Type of exception to throw - - - - - - Throws an exception for this call made with any arguments, as generated by the specified function. - - - Func creating exception object - - - - - Throws an exception for this call made with any arguments, as generated by the specified function. - - - Func creating exception object - - - - - Checks this substitute has received the following call the required number of times. - - - - - - - - - Checks this substitute has received the following call with any arguments the required number of times. - - - - - - - - - Represents a quantity. Primarily used for specifying a required amount of calls to a member. - - - - - A non-zero quantity between the given minimum and maximum numbers (inclusive). - - Minimum quantity (inclusive). Must be greater than or equal to 0. - Maximum quantity (inclusive). Must be greater than minInclusive. - - - - - Returns whether the given collection contains the required quantity of items. - - - - true if the collection has the required quantity; otherwise false. - - - - Returns whether the given collections needs more items to satisfy the required quantity. - - - - true if the collection needs more items to match this quantity; otherwise false. - - - - Describe this quantity using the given noun variants. - For example, `Describe("item", "items")` could return the description: - "more than 1 item, but less than 10 items". - - - - A string describing the required quantity of items identified by the provided noun forms. - - - - Set null as returned value for this call. - - - - - Set null as returned value for this call made with any arguments. - - - - - Set null as returned value for this call. - - - - - Set null as returned value for this call made with any arguments. - - - - - Set null as returned value for this call. - - - - - Set null as returned value for this call. - - - - - Set null as returned value for this call made with any arguments. - - - - - Set null as returned value for this call made with any arguments. - - - - - - - - Set null as returned value for this call. - - - - - Set null as returned value for this call made with any arguments. - - - - - Set null as returned value for this call. - - - - - Set null as returned value for this call made with any arguments. - - - - - Switches interceptor to dispatch calls via the full pipeline. - - - - - Raise an event for an EventHandler<TEventArgs> event with the provided and . - - - - - Raise an event for an EventHandler<TEventArgs> event with the substitute as the sender and the provided . - - - - - Raise an event for an EventHandler<EventArgsT> event with the substitute as the sender - and with a default instance of . - - - - - Raise an event for an EventHandler or EventHandler<EventArgs> event with the substitute - as the sender and with empty EventArgs. - - - - - Raise an event of type with the provided arguments. If no arguments are provided - NSubstitute will try to provide reasonable defaults. - - - - - If delegate takes single parameter of array type, it's impossible to distinguish - whether input array represents all arguments, or the first argument only. - If we find that ambiguity might happen, we wrap user input in an extra array. - - - - - Asserts the calls to the substitutes contained in the given Action were - received by these substitutes in the same order. Calls to property getters are not included - in the assertion. - - Action containing calls to substitutes in the expected order - - - - Clears last call router on SubstitutionContext for routes that do not require it. - - - This is to help prevent static state bleeding over into future calls. - - - - - Create a substitute for one or more types. For example: Substitute.For<ISomeType>() - - - - - Substitute for an interface or class. - Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members - can be recorded or have return values specified. - - The type of interface or class to substitute. - Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. - A substitute for the interface or class. - - - - Substitute for multiple interfaces or a class that implements an interface. At most one class can be specified. - Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members - can be recorded or have return values specified. - - The type of interface or class to substitute. - An additional interface or class (maximum of one class) the substitute should implement. - Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. - A substitute of type T1, that also implements T2. - - - - Substitute for multiple interfaces or a class that implements multiple interfaces. At most one class can be specified. - If additional interfaces are required use the overload. - Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members - can be recorded or have return values specified. - - The type of interface or class to substitute. - An additional interface or class (maximum of one class) the substitute should implement. - An additional interface or class (maximum of one class) the substitute should implement. - Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. - A substitute of type T1, that also implements T2 and T3. - - - - Substitute for multiple interfaces or a class that implements multiple interfaces. At most one class can be specified. - Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members - can be recorded or have return values specified. - - The types of interfaces or a type of class and multiple interfaces the substitute should implement. - Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. - A substitute implementing the specified types. - - - - Create a substitute for a class that behaves just like a real instance of the class, but also - records calls made to its virtual members and allows for specific members to be substituted - by using When(() => call).DoNotCallBase() or by - setting a value to return value for that member. - - The type to substitute for parts of. Must be a class; not a delegate or interface. - - An instance of the class that will execute real methods when called, but allows parts to be selectively - overridden via `Returns` and `When..DoNotCallBase`. - - - - Checks this substitute has received the following call. - - - - - Checks this substitute has received the following call the required number of times. - - - - - Checks this substitute has not received the following call. - - - - - Checks this substitute has received the following call with any arguments. - - - - - Checks this substitute has received the following call with any arguments the required number of times. - - - - - Checks this substitute has not received the following call with any arguments. - - - - - Returns the calls received by this substitute. - - - - - Forget all the calls this substitute has received. - - - Note that this will not clear any results set up for the substitute using Returns(). - See for more options with resetting - a substitute. - - - - - Set a return value for this call. - - - Value to return - Optionally return these values next - - - - Set a return value for this call, calculated by the provided function. - - - Function to calculate the return value - Optionally use these functions next - - - - Set a return value for this call made with any arguments. - - - Value to return - Optionally return these values next - - - - Set a return value for this call made with any arguments, calculated by the provided function. - - - Function to calculate the return value - Optionally use these functions next - - - - - Set a return value for this call. The value(s) to be returned will be wrapped in Tasks. - - - Value to return. Will be wrapped in a Task - Optionally use these values next - - - - Set a return value for this call, calculated by the provided function. The value(s) to be returned will be wrapped in Tasks. - - - Function to calculate the return value - Optionally use these functions next - - - - Set a return value for this call made with any arguments. The value(s) to be returned will be wrapped in Tasks. - - - Value to return - Optionally return these values next - - - - Set a return value for this call made with any arguments, calculated by the provided function. The value(s) to be returned will be wrapped in Tasks. - - - Function to calculate the return value - Optionally use these functions next - - - - Set a return value for this call. The value(s) to be returned will be wrapped in ValueTasks. - - - Value to return. Will be wrapped in a ValueTask - Optionally use these values next - - - - Set a return value for this call, calculated by the provided function. The value(s) to be returned will be wrapped in ValueTasks. - - - Function to calculate the return value - Optionally use these functions next - - - - Set a return value for this call made with any arguments. The value(s) to be returned will be wrapped in ValueTasks. - - - Value to return - Optionally return these values next - - - - Set a return value for this call made with any arguments, calculated by the provided function. The value(s) to be returned will be wrapped in ValueTasks. - - - Function to calculate the return value - Optionally use these functions next - - - - Perform an action when this member is called. - Must be followed by to provide the callback. - - - - - Perform an action when this member is called with any arguments. - Must be followed by to provide the callback. - - - - - Perform an action when this member is called. - Must be followed by to provide the callback. - - - - - Perform an action when this member is called with any arguments. - Must be followed by to provide the callback. - - - - - Perform an action when this member is called. - Must be followed by to provide the callback. - - - - - Perform an action when this member is called with any arguments. - Must be followed by to provide the callback. - - - - Specifies that null is allowed as an input even if the corresponding type disallows it. - - - Specifies that null is disallowed as an input even if the corresponding type allows it. - - - Specifies that an output may be null even if the corresponding type disallows it. - - - Specifies that an output will not be null even if the corresponding type allows it. - - - Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this value, the associated parameter may be null. - - - - Gets the return value condition. - - - Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this value, the associated parameter will not be null. - - - - Gets the return value condition. - - - Specifies that the output will be non-null if the named parameter is non-null. - - - Initializes the attribute with the associated parameter name. - - The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. - - - - Gets the associated parameter name. - - - Applied to a method that will never return under any circumstance. - - - Specifies that the method will not return if the associated Boolean parameter is passed the specified value. - - - Initializes the attribute with the specified parameter value. - - The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to - the associated parameter matches this value. - - - - Gets the condition parameter value. - - - Specifies that the method or property will ensure that the listed field and property members have not-null values. - - - Initializes the attribute with a field or property member. - - The field or property member that is promised to be not-null. - - - - Initializes the attribute with the list of field and property members. - - The list of field and property members that are promised to be not-null. - - - - Gets field or property member names. - - - Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition. - - - Initializes the attribute with the specified return value condition and a field or property member. - - The return value condition. If the method returns this value, the associated parameter will not be null. - - - The field or property member that is promised to be not-null. - - - - Initializes the attribute with the specified return value condition and list of field and property members. - - The return value condition. If the method returns this value, the associated parameter will not be null. - - - The list of field and property members that are promised to be not-null. - - - - Gets the return value condition. - - - Gets field or property member names. - - - + + + + NSubstitute + + + + + Argument matchers used for specifying calls to substitutes. + + + + + This type can be used with any matcher to match a generic type parameter. + + + If the generic type parameter has constraints, you will have to create a derived class/struct that + implements those constraints. + + + + + Match any argument value compatible with type . + + + + + Match argument that is equal to . + + + + + Match argument that satisfies . + If the throws an exception for an argument it will be treated as non-matching. + + + + + Match argument that satisfies . + If the throws an exception for an argument it will be treated as non-matching. + + + + + Invoke any argument whenever a matching call is made to the substitute. + + + + + Invoke any argument with specified argument whenever a matching call is made to the substitute. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + + Arguments to pass to delegate. + + + + Capture any argument compatible with type and use it to call the function + whenever a matching call is made to the substitute. + + + + + Capture any argument compatible with type and use it to call the function + whenever a matching call is made to the substitute. + + + + + Alternate version of matchers for compatibility with pre-C#7 compilers + which do not support ref return types. Do not use unless you are unable to use . + + For more information see Compatibility Argument + Matchers in the NSubstitute documentation. + + + + + Match any argument value compatible with type . + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Match argument that is equal to . + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Match argument that satisfies . + If the throws an exception for an argument it will be treated as non-matching. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Match argument that satisfies . + If the throws an exception for an argument it will be treated as non-matching. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified argument whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + Arguments to pass to delegate. + + + + Capture any argument compatible with type and use it to call the function + whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Capture any argument compatible with type and use it to call the function + whenever a matching call is made to the substitute. + + + + + Perform this chain of callbacks and/or always callback when called. + + + + + Perform as first in chain of callback when called. + + + + + + + Perform this action always when callback is called. + + + + + + + Throw exception returned by function as first callback in chain of callback when called. + + + + + + + Throw this exception as first callback in chain of callback when called. + + + + + + + Throw exception returned by function always when callback is called. + + The type of the exception. + The throw this. + + + + + Throw this exception always when callback is called. + + The type of the exception. + The exception. + + + + + Perform this action once in chain of called callbacks. + + + + + Keep doing this action after the other callbacks have run. + + + + + Keep throwing this exception after the other callbacks have run. + + + + + Keep throwing this exception after the other callbacks have run. + + + + + Throw exception returned by function once when called in a chain of callbacks. + + The type of the exception + Produce the exception to throw for a CallInfo + + + + Throw this exception once when called in a chain of callbacks. + + The type of the exception + The exception to throw + + + + Perform the given action for every call. + + The action to perform for every call + + + + Clear all the received calls + + + + + Clear all configured return results (including auto-substituted values). + + + + + Clear all call actions configured for this substitute (via When..Do, Arg.Invoke, and Arg.Do) + + + + + Clears all received calls and configured return values and callbacks. + + + + + Alternate version of matchers for compatibility with pre-C#7 compilers + which do not support ref return types. Do not use unless you are unable to use . + + provides a non-static version of , which can make it easier + to use from an abstract base class. You can get a reference to this instance using the static + field. + + For more information see Compatibility Argument + Matchers in the NSubstitute documentation. + + + + + Get the CompatArg instance. + + + + + Match any argument value compatible with type . + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Match argument that is equal to . + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Match argument that satisfies . + If the throws an exception for an argument it will be treated as non-matching. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Match argument that satisfies . + If the throws an exception for an argument it will be treated as non-matching. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified argument whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + Arguments to pass to delegate. + + + + Capture any argument compatible with type and use it to call the function + whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Capture any argument compatible with type and use it to call the function + whenever a matching call is made to the substitute. + + + + + Enqueues a matcher for the method argument in current position and returns the value which should be + passed back to the method you invoke. + + + + + Provides a specification for arguments for use with . + Can additionally implement to give descriptions when arguments do not match. + + + + + Checks whether the satisfies the condition of the matcher. + If this throws an exception the argument will be treated as non-matching. + + + + + Provides a specification for arguments for use with . + Can additionally implement to give descriptions when arguments do not match. + + Matches arguments of type or compatible type. + + + + Checks whether the satisfies the condition of the matcher. + If this throws an exception the argument will be treated as non-matching. + + + + + + + + + + + + + + + + + Performance optimization. Allows to mark call as deleted without allocating extra wrapper. + To play safely, we track ownership, so object can be re-used only once. + + + + + Wrapper to track that particular entry was deleted. + That is needed because concurrent collections don't have a Delete method. + Notice, in most cases the original instance will be used as a wrapper itself. + + + + + Gets the nth argument to this call. + + Index of argument + The value of the argument at the given index + + + + Get the arguments passed to this call. + + Array of all arguments passed to this call + + + + Gets the types of all the arguments passed to this call. + + Array of types of all arguments passed to this call + + + + Gets the argument of type `T` passed to this call. This will throw if there are no arguments + of this type, or if there is more than one matching argument. + + The type of the argument to retrieve + The argument passed to the call, or throws if there is not exactly one argument of this type + + + + Gets the argument passed to this call at the specified zero-based position, converted to type `T`. + This will throw if there are no arguments, if the argument is out of range or if it + cannot be converted to the specified type. + + The type of the argument to retrieve + The zero-based position of the argument to retrieve + The argument passed to the call, or throws if there is not exactly one argument of this type + + + + Adds a callback to execute for matching calls. + + an action to call + + + + + Creates a new container based on the current one, + which can be configured to override the existing registrations without affecting the existing container. + + + + + Create an explicit scope, so all dependencies with the lifetime + are preserved for multiple resolve requests. + + + + + Decorates the original implementation with a custom decorator. + The factory method is provided with an original implementation instance. + The lifetime of decorated implementation is used. + + + + + Tiny and very limited implementation of the DI services. + Container supports the following features required by NSubstitute: + - Registration by type with automatic constructor injection + - Registration of factory methods for the complex objects + - Support of the most required lifetimes: + - + - + - + - Immutability (via interfaces) and customization by creating a nested container + + + + + Value is created only once. + + + + + Value is created only once per scope. Allows to share the same instance across the objects in the same graph. + If no explicit scope is created, an implicit scope is created per single resolve request. + + + + + New value is created for each time. + + + + + The default NSubstitute registrations. Feel free to configure the existing container to customize + and override NSubstitute parts. + + + + + Checks if the instance can be used when a is expected. + + + + + Join the using . + + + + + Tries to cast sequence to array first before making a new array sequence. + + + + + Gets or sets whether base method should be called by default. + + + + + Specifies whether base method should be always ignored for the matching call. + If method is both explicitly excluded and included, base method is _not_ called. + + + + + Specifies whether base method should be called for the matching call. + If method is both explicitly excluded and included, base method is _not_ called. + + + + + Tests whether base method should be called for the call given the existing configuration. + + + + + Specifies whether base method should be called by default. + + + This configuration is considered only when base method exists (e.g. you created a substitute for + the AbstractType with method implementation). + + + + + Factory method which creates from the . + + + + + Describes how the does not match the condition specified by this class, or + if a detailed description can not be provided for the argument. + + + Description of the non-match, or if no description can be provided. + + + + Performance optimization. Allows to not construct if configured result doesn't depend on it. + + + + + A thread bound state of the NSubstitute context. Usually this API is used to provide the fluent + features of the NSubstitute. + + + + + Sets the route to use for the next call dispatch on the current thread for the specified . + + + + + Returns the previously configured next route and resets the stored value. + If route was configured for the different router, returns and persist the route info. + + + + + Returns the previously set arguments factory and resets the stored value. + + + + + Invokes the passed callback in a context of the specified query. + + + + + Particularly poor implementation of Maybe/Option type. + This is just filling an immediate need; use FSharpOption or XSharpx or similar for a + real implementation. + + + + + + Delegates to ThreadLocal<T>, but wraps Value property access in try/catch to swallow ObjectDisposedExceptions. + These can occur if the Value property is accessed from the finalizer thread. Because we can't detect this, we'll + just swallow the exception (the finalizer thread won't be using any of the values from thread local storage anyway). + + + + + Create a substitute for the given types. + + + + + + + + Create an instance of the given types, with calls configured to call the base implementation + where possible. Parts of the instance can be substituted using + Returns(). + + + + + + + + Perform this action when called. + + + + + + Perform this configured callback when called. + + + + + + Do not call the base implementation on future calls. For use with partial substitutes. + + + + + Call the base implementation of future calls. For use with non-partial class substitutes. + + + + + Throw the specified exception when called. + + + + + Throw an exception of the given type when called. + + + + + Throw an exception generated by the specified function when called. + + + + + Clears received calls, configured return values and/or call actions for this substitute. + + + + Specifies what to clear on the substitute. Can be combined with | to + clear multiple aspects at once. + + + + + + A hint for the NSubstitute that the subsequent method/property call is about to be configured. + For example: substitute.Configure().GetValue().Returns(1,2,3); + + NOTICE, you _don't need_ to invoke this method for the basic configuration scenarios. + Ensure you don't overuse this method and it is applied only if strictly required. + + + Due to the NSubstitute configuration syntax it is often impossible to recognise during the method call + dispatch whether this is a setup phase or a regular method call. + Usually it doesn't matter, however sometimes method invocation could lead to undesired side effects + (e.g. the previously configured value is returned, base method is invoked). In that case you might want to + provide NSubstitute with a hint that you are configuring a method, so it handles the call in configuration mode. + + + + + + Configure default return value for all methods that return the specified type + + + + + + + + + Configure default return value for all methods that return the specified type, calculated by a function + + + + + + + + + Throw an exception for this call. + + + Exception to throw + + + + + Throw an exception of the given type for this call. + + Type of exception to throw + + + + + + Throw an exception for this call, as generated by the specified function. + + + Func creating exception object + + + + + Throw an exception for this call made with any arguments. + + + Exception to throw + + + + + Throws an exception of the given type for this call made with any arguments. + + Type of exception to throw + + + + + + Throws an exception for this call made with any arguments, as generated by the specified function. + + + Func creating exception object + + + + + Throw an exception for this call. + + + Exception to throw + + + + + Throw an exception for this call. + + + Exception to throw + + + + + Throw an exception of the given type for this call. + + Type of exception to throw + + + + + + Throw an exception for this call, as generated by the specified function. + + + Func creating exception object + + + + + Throw an exception for this call, as generated by the specified function. + + + Func creating exception object + + + + + Throw an exception for this call made with any arguments. + + + Exception to throw + + + + + Throw an exception for this call made with any arguments. + + + Exception to throw + + + + + Throws an exception of the given type for this call made with any arguments. + + Type of exception to throw + + + + + + Throws an exception for this call made with any arguments, as generated by the specified function. + + + Func creating exception object + + + + + Throws an exception for this call made with any arguments, as generated by the specified function. + + + Func creating exception object + + + + + Checks this substitute has received the following call the required number of times. + + + + + + + + + Checks this substitute has received the following call with any arguments the required number of times. + + + + + + + + + Represents a quantity. Primarily used for specifying a required amount of calls to a member. + + + + + A non-zero quantity between the given minimum and maximum numbers (inclusive). + + Minimum quantity (inclusive). Must be greater than or equal to 0. + Maximum quantity (inclusive). Must be greater than minInclusive. + + + + + Returns whether the given collection contains the required quantity of items. + + + + true if the collection has the required quantity; otherwise false. + + + + Returns whether the given collections needs more items to satisfy the required quantity. + + + + true if the collection needs more items to match this quantity; otherwise false. + + + + Describe this quantity using the given noun variants. + For example, `Describe("item", "items")` could return the description: + "more than 1 item, but less than 10 items". + + + + A string describing the required quantity of items identified by the provided noun forms. + + + + Set null as returned value for this call. + + + + + Set null as returned value for this call made with any arguments. + + + + + Set null as returned value for this call. + + + + + Set null as returned value for this call made with any arguments. + + + + + Set null as returned value for this call. + + + + + Set null as returned value for this call. + + + + + Set null as returned value for this call made with any arguments. + + + + + Set null as returned value for this call made with any arguments. + + + + + + + + Set null as returned value for this call. + + + + + Set null as returned value for this call made with any arguments. + + + + + Set null as returned value for this call. + + + + + Set null as returned value for this call made with any arguments. + + + + + Switches interceptor to dispatch calls via the full pipeline. + + + + + Raise an event for an EventHandler<TEventArgs> event with the provided and . + + + + + Raise an event for an EventHandler<TEventArgs> event with the substitute as the sender and the provided . + + + + + Raise an event for an EventHandler<EventArgsT> event with the substitute as the sender + and with a default instance of . + + + + + Raise an event for an EventHandler or EventHandler<EventArgs> event with the substitute + as the sender and with empty EventArgs. + + + + + Raise an event of type with the provided arguments. If no arguments are provided + NSubstitute will try to provide reasonable defaults. + + + + + If delegate takes single parameter of array type, it's impossible to distinguish + whether input array represents all arguments, or the first argument only. + If we find that ambiguity might happen, we wrap user input in an extra array. + + + + + Asserts the calls to the substitutes contained in the given Action were + received by these substitutes in the same order. Calls to property getters are not included + in the assertion. + + Action containing calls to substitutes in the expected order + + + + Clears last call router on SubstitutionContext for routes that do not require it. + + + This is to help prevent static state bleeding over into future calls. + + + + + Create a substitute for one or more types. For example: Substitute.For<ISomeType>() + + + + + Substitute for an interface or class. + Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members + can be recorded or have return values specified. + + The type of interface or class to substitute. + Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. + A substitute for the interface or class. + + + + Substitute for multiple interfaces or a class that implements an interface. At most one class can be specified. + Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members + can be recorded or have return values specified. + + The type of interface or class to substitute. + An additional interface or class (maximum of one class) the substitute should implement. + Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. + A substitute of type T1, that also implements T2. + + + + Substitute for multiple interfaces or a class that implements multiple interfaces. At most one class can be specified. + If additional interfaces are required use the overload. + Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members + can be recorded or have return values specified. + + The type of interface or class to substitute. + An additional interface or class (maximum of one class) the substitute should implement. + An additional interface or class (maximum of one class) the substitute should implement. + Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. + A substitute of type T1, that also implements T2 and T3. + + + + Substitute for multiple interfaces or a class that implements multiple interfaces. At most one class can be specified. + Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members + can be recorded or have return values specified. + + The types of interfaces or a type of class and multiple interfaces the substitute should implement. + Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. + A substitute implementing the specified types. + + + + Create a substitute for a class that behaves just like a real instance of the class, but also + records calls made to its virtual members and allows for specific members to be substituted + by using When(() => call).DoNotCallBase() or by + setting a value to return value for that member. + + The type to substitute for parts of. Must be a class; not a delegate or interface. + + An instance of the class that will execute real methods when called, but allows parts to be selectively + overridden via `Returns` and `When..DoNotCallBase`. + + + + Checks this substitute has received the following call. + + + + + Checks this substitute has received the following call the required number of times. + + + + + Checks this substitute has not received the following call. + + + + + Checks this substitute has received the following call with any arguments. + + + + + Checks this substitute has received the following call with any arguments the required number of times. + + + + + Checks this substitute has not received the following call with any arguments. + + + + + Returns the calls received by this substitute. + + + + + Forget all the calls this substitute has received. + + + Note that this will not clear any results set up for the substitute using Returns(). + See for more options with resetting + a substitute. + + + + + Set a return value for this call. + + + Value to return + Optionally return these values next + + + + Set a return value for this call, calculated by the provided function. + + + Function to calculate the return value + Optionally use these functions next + + + + Set a return value for this call made with any arguments. + + + Value to return + Optionally return these values next + + + + Set a return value for this call made with any arguments, calculated by the provided function. + + + Function to calculate the return value + Optionally use these functions next + + + + + Set a return value for this call. The value(s) to be returned will be wrapped in Tasks. + + + Value to return. Will be wrapped in a Task + Optionally use these values next + + + + Set a return value for this call, calculated by the provided function. The value(s) to be returned will be wrapped in Tasks. + + + Function to calculate the return value + Optionally use these functions next + + + + Set a return value for this call made with any arguments. The value(s) to be returned will be wrapped in Tasks. + + + Value to return + Optionally return these values next + + + + Set a return value for this call made with any arguments, calculated by the provided function. The value(s) to be returned will be wrapped in Tasks. + + + Function to calculate the return value + Optionally use these functions next + + + + Set a return value for this call. The value(s) to be returned will be wrapped in ValueTasks. + + + Value to return. Will be wrapped in a ValueTask + Optionally use these values next + + + + Set a return value for this call, calculated by the provided function. The value(s) to be returned will be wrapped in ValueTasks. + + + Function to calculate the return value + Optionally use these functions next + + + + Set a return value for this call made with any arguments. The value(s) to be returned will be wrapped in ValueTasks. + + + Value to return + Optionally return these values next + + + + Set a return value for this call made with any arguments, calculated by the provided function. The value(s) to be returned will be wrapped in ValueTasks. + + + Function to calculate the return value + Optionally use these functions next + + + + Perform an action when this member is called. + Must be followed by to provide the callback. + + + + + Perform an action when this member is called with any arguments. + Must be followed by to provide the callback. + + + + + Perform an action when this member is called. + Must be followed by to provide the callback. + + + + + Perform an action when this member is called with any arguments. + Must be followed by to provide the callback. + + + + + Perform an action when this member is called. + Must be followed by to provide the callback. + + + + + Perform an action when this member is called with any arguments. + Must be followed by to provide the callback. + + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + Specifies that null is disallowed as an input even if the corresponding type allows it. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter may be null. + + + + Gets the return value condition. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that the output will be non-null if the named parameter is non-null. + + + Initializes the attribute with the associated parameter name. + + The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. + + + + Gets the associated parameter name. + + + Applied to a method that will never return under any circumstance. + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + Initializes the attribute with the specified parameter value. + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + Specifies that the method or property will ensure that the listed field and property members have not-null values. + + + Initializes the attribute with a field or property member. + + The field or property member that is promised to be not-null. + + + + Initializes the attribute with the list of field and property members. + + The list of field and property members that are promised to be not-null. + + + + Gets field or property member names. + + + Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition. + + + Initializes the attribute with the specified return value condition and a field or property member. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + The field or property member that is promised to be not-null. + + + + Initializes the attribute with the specified return value condition and list of field and property members. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + The list of field and property members that are promised to be not-null. + + + + Gets the return value condition. + + + Gets field or property member names. + + + diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml.meta b/Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml.meta rename to Assets/PlayroomKit/Editor/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/AssetModBlock.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/AssetModBlock.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/EditorQuit.cs b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/AssetModBlock/EditorQuit.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/EditorQuit.cs rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/AssetModBlock/EditorQuit.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/EditorQuit.cs.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/AssetModBlock/EditorQuit.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/EditorQuit.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/AssetModBlock/EditorQuit.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManager.cs b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ClonesManager.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManager.cs rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ClonesManager.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManager.cs.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ClonesManager.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManager.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ClonesManager.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManagerWindow.cs b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ClonesManagerWindow.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManagerWindow.cs rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ClonesManagerWindow.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManagerWindow.cs.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ClonesManagerWindow.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManagerWindow.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ClonesManagerWindow.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ExternalLinks.cs b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ExternalLinks.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ExternalLinks.cs rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ExternalLinks.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ExternalLinks.cs.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ExternalLinks.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ExternalLinks.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ExternalLinks.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/FileUtilities.cs b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/FileUtilities.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/FileUtilities.cs rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/FileUtilities.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/FileUtilities.cs.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/FileUtilities.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/FileUtilities.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/FileUtilities.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/NonCore.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/NonCore.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/OtherMenuItem.cs b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/NonCore/OtherMenuItem.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/OtherMenuItem.cs rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/NonCore/OtherMenuItem.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/OtherMenuItem.cs.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/NonCore/OtherMenuItem.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/OtherMenuItem.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/NonCore/OtherMenuItem.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ParrelSyncProjectSettings.cs b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ParrelSyncProjectSettings.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ParrelSyncProjectSettings.cs rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ParrelSyncProjectSettings.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ParrelSyncProjectSettings.cs.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ParrelSyncProjectSettings.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ParrelSyncProjectSettings.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ParrelSyncProjectSettings.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/Preferences.cs b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/Preferences.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/Preferences.cs rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/Preferences.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/Preferences.cs.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/Preferences.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/Preferences.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/Preferences.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/Project.cs b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/Project.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/Project.cs rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/Project.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/Project.cs.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/Project.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/Project.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/Project.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/UpdateChecker.cs b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/UpdateChecker.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/UpdateChecker.cs rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/UpdateChecker.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/UpdateChecker.cs.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/UpdateChecker.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/UpdateChecker.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/UpdateChecker.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Plugins.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Plugins.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Plugins.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Plugins.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Plugins/ParrelSync.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Plugins/ParrelSync.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/package.json b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/package.json similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/package.json rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/package.json diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/package.json.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/package.json.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/package.json.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/package.json.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/projectCloner.asmdef b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/projectCloner.asmdef similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/projectCloner.asmdef rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/projectCloner.asmdef diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/projectCloner.asmdef.meta b/Assets/PlayroomKit/Editor/dependencies/ParrelSync/projectCloner.asmdef.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/projectCloner.asmdef.meta rename to Assets/PlayroomKit/Editor/dependencies/ParrelSync/projectCloner.asmdef.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/CommandArgument.cs b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/CommandArgument.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/CommandArgument.cs rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/CommandArgument.cs diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/CommandArgument.cs.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/CommandArgument.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/CommandArgument.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/CommandArgument.cs.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/CommandCallback.cs b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/CommandCallback.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/CommandCallback.cs rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/CommandCallback.cs diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/CommandCallback.cs.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/CommandCallback.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/CommandCallback.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/CommandCallback.cs.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/CommandEnteredEventArgs.cs b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/CommandEnteredEventArgs.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/CommandEnteredEventArgs.cs rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/CommandEnteredEventArgs.cs diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/CommandEnteredEventArgs.cs.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/CommandEnteredEventArgs.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/CommandEnteredEventArgs.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/CommandEnteredEventArgs.cs.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/ConsoleColours.cs b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/ConsoleColours.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/ConsoleColours.cs rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/ConsoleColours.cs diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/ConsoleColours.cs.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/ConsoleColours.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/ConsoleColours.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/ConsoleColours.cs.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/ConsoleConfig.cs b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/ConsoleConfig.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/ConsoleConfig.cs rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/ConsoleConfig.cs diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/ConsoleConfig.cs.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/ConsoleConfig.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/ConsoleConfig.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/ConsoleConfig.cs.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/ConsolePosition.cs b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/ConsolePosition.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/ConsolePosition.cs rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/ConsolePosition.cs diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/ConsolePosition.cs.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/ConsolePosition.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/ConsolePosition.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/ConsolePosition.cs.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/Core.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/Core.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/Core.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/Core.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/Core/CanvasController.cs b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/Core/CanvasController.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/Core/CanvasController.cs rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/Core/CanvasController.cs diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/Core/CanvasController.cs.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/Core/CanvasController.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/Core/CanvasController.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/Core/CanvasController.cs.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/Core/ConsoleController.cs b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/Core/ConsoleController.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/Core/ConsoleController.cs rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/Core/ConsoleController.cs diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/Core/ConsoleController.cs.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/Core/ConsoleController.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/Core/ConsoleController.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/Core/ConsoleController.cs.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/CustomCommand.cs b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/CustomCommand.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/CustomCommand.cs rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/CustomCommand.cs diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/CustomCommand.cs.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/CustomCommand.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/CustomCommand.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/CustomCommand.cs.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/Example.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/Example.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/Example.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/Example.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/Example/ExampleScene.unity b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/Example/ExampleScene.unity similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/Example/ExampleScene.unity rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/Example/ExampleScene.unity diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/Example/ExampleScene.unity.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/Example/ExampleScene.unity.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/Example/ExampleScene.unity.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/Example/ExampleScene.unity.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/Example/ExampleSceneManagerController.cs b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/Example/ExampleSceneManagerController.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/Example/ExampleSceneManagerController.cs rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/Example/ExampleSceneManagerController.cs diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/Example/ExampleSceneManagerController.cs.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/Example/ExampleSceneManagerController.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/Example/ExampleSceneManagerController.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/Example/ExampleSceneManagerController.cs.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/LogLevel.cs b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/LogLevel.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/LogLevel.cs rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/LogLevel.cs diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/LogLevel.cs.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/LogLevel.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/LogLevel.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/LogLevel.cs.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/PowerConsole.cs b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/PowerConsole.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/PowerConsole.cs rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/PowerConsole.cs diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/PowerConsole.cs.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/PowerConsole.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/PowerConsole.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/PowerConsole.cs.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/Prefabs.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/Prefabs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/Prefabs.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/Prefabs.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/Prefabs/PowerConsole.prefab b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/Prefabs/PowerConsole.prefab similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/Prefabs/PowerConsole.prefab rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/Prefabs/PowerConsole.prefab diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/Prefabs/PowerConsole.prefab.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/Prefabs/PowerConsole.prefab.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/Prefabs/PowerConsole.prefab.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/Prefabs/PowerConsole.prefab.meta diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/readme.txt b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/readme.txt similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/readme.txt rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/readme.txt diff --git a/Assets/PlayroomKit/dependencies/PowerConsole/readme.txt.meta b/Assets/PlayroomKit/Editor/dependencies/PowerConsole/readme.txt.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/PowerConsole/readme.txt.meta rename to Assets/PlayroomKit/Editor/dependencies/PowerConsole/readme.txt.meta diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0.meta b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0.meta diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/LICENSE.TXT b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/LICENSE.TXT similarity index 97% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/LICENSE.TXT rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/LICENSE.TXT index fa3121df..984713a4 100644 --- a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/LICENSE.TXT +++ b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/LICENSE.TXT @@ -1,23 +1,23 @@ -The MIT License (MIT) - -Copyright (c) .NET Foundation and Contributors - -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/LICENSE.TXT.meta b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/LICENSE.TXT.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/LICENSE.TXT.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/LICENSE.TXT.meta diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/System.Diagnostics.EventLog.nuspec b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/System.Diagnostics.EventLog.nuspec similarity index 98% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/System.Diagnostics.EventLog.nuspec rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/System.Diagnostics.EventLog.nuspec index 72812bb9..3c247bb4 100644 --- a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/System.Diagnostics.EventLog.nuspec +++ b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/System.Diagnostics.EventLog.nuspec @@ -1,49 +1,49 @@ - - - - System.Diagnostics.EventLog - 4.7.0 - System.Diagnostics.EventLog - Microsoft - microsoft,dotnetframework - false - MIT - https://licenses.nuget.org/MIT - https://github.com/dotnet/corefx - http://go.microsoft.com/fwlink/?LinkID=288859 - Provides the System.Diagnostics.EventLog class, which allows the applications to use the windows event log service. - -Commonly Used Types: -System.Diagnostics.EventLog - -When using NuGet 3.x this package requires at least version 3.4. - https://go.microsoft.com/fwlink/?LinkID=799421 - © Microsoft Corporation. All rights reserved. - true - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + System.Diagnostics.EventLog + 4.7.0 + System.Diagnostics.EventLog + Microsoft + microsoft,dotnetframework + false + MIT + https://licenses.nuget.org/MIT + https://github.com/dotnet/corefx + http://go.microsoft.com/fwlink/?LinkID=288859 + Provides the System.Diagnostics.EventLog class, which allows the applications to use the windows event log service. + +Commonly Used Types: +System.Diagnostics.EventLog + +When using NuGet 3.x this package requires at least version 3.4. + https://go.microsoft.com/fwlink/?LinkID=799421 + © Microsoft Corporation. All rights reserved. + true + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/System.Diagnostics.EventLog.nuspec.meta b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/System.Diagnostics.EventLog.nuspec.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/System.Diagnostics.EventLog.nuspec.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/System.Diagnostics.EventLog.nuspec.meta diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/THIRD-PARTY-NOTICES.TXT b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/THIRD-PARTY-NOTICES.TXT similarity index 98% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/THIRD-PARTY-NOTICES.TXT rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/THIRD-PARTY-NOTICES.TXT index 3a236152..77a243ef 100644 --- a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/THIRD-PARTY-NOTICES.TXT +++ b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/THIRD-PARTY-NOTICES.TXT @@ -1,375 +1,375 @@ -.NET Core uses third-party libraries or other resources that may be -distributed under licenses different than the .NET Core software. - -In the event that we accidentally failed to list a required notice, please -bring it to our attention. Post an issue or email us: - - dotnet@microsoft.com - -The attached notices are provided for information only. - -License notice for ASP.NET -------------------------------- - -Copyright (c) .NET Foundation. All rights reserved. -Licensed under the Apache License, Version 2.0. - -Available at -https://github.com/aspnet/AspNetCore/blob/master/LICENSE.txt - -License notice for Slicing-by-8 -------------------------------- - -http://sourceforge.net/projects/slicing-by-8/ - -Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved - - -This software program is licensed subject to the BSD License, available at -http://www.opensource.org/licenses/bsd-license.html. - - -License notice for Unicode data -------------------------------- - -http://www.unicode.org/copyright.html#License - -Copyright © 1991-2017 Unicode, Inc. All rights reserved. -Distributed under the Terms of Use in http://www.unicode.org/copyright.html. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Unicode data files and any associated documentation -(the "Data Files") or Unicode software and any associated documentation -(the "Software") to deal in the Data Files or Software -without restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, and/or sell copies of -the Data Files or Software, and to permit persons to whom the Data Files -or Software are furnished to do so, provided that either -(a) this copyright and permission notice appear with all copies -of the Data Files or Software, or -(b) this copyright and permission notice appear in associated -Documentation. - -THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT OF THIRD PARTY RIGHTS. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS -NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL -DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THE DATA FILES OR SOFTWARE. - -Except as contained in this notice, the name of a copyright holder -shall not be used in advertising or otherwise to promote the sale, -use or other dealings in these Data Files or Software without prior -written authorization of the copyright holder. - -License notice for Zlib ------------------------ - -https://github.com/madler/zlib -http://zlib.net/zlib_license.html - -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.11, January 15th, 2017 - - Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - -*/ - -License notice for Mono -------------------------------- - -http://www.mono-project.com/docs/about-mono/ - -Copyright (c) .NET Foundation Contributors - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the Software), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -License notice for International Organization for Standardization ------------------------------------------------------------------ - -Portions (C) International Organization for Standardization 1986: - Permission to copy in any form is granted for use with - conforming SGML systems and applications as defined in - ISO 8879, provided this notice is included in all copies. - -License notice for Intel ------------------------- - -"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -License notice for Xamarin and Novell -------------------------------------- - -Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -Copyright (c) 2011 Novell, Inc (http://www.novell.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -Third party notice for W3C --------------------------- - -"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE -Status: This license takes effect 13 May, 2015. -This work is being provided by the copyright holders under the following license. -License -By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. -Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: -The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. -Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. -Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." -Disclaimers -THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. -COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. -The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." - -License notice for Bit Twiddling Hacks --------------------------------------- - -Bit Twiddling Hacks - -By Sean Eron Anderson -seander@cs.stanford.edu - -Individually, the code snippets here are in the public domain (unless otherwise -noted) — feel free to use them however you please. The aggregate collection and -descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are -distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and -without even the implied warranty of merchantability or fitness for a particular -purpose. - -License notice for Brotli --------------------------------------- - -Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -compress_fragment.c: -Copyright (c) 2011, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -decode_fuzzer.c: -Copyright (c) 2015 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." - -License notice for Json.NET -------------------------------- - -https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md - -The MIT License (MIT) - -Copyright (c) 2007 James Newton-King - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -License notice for vectorized base64 encoding / decoding --------------------------------------------------------- - -Copyright (c) 2005-2007, Nick Galbreath -Copyright (c) 2013-2017, Alfred Klomp -Copyright (c) 2015-2017, Wojciech Mula -Copyright (c) 2016-2017, Matthieu Darbois -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - -- Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.NET Core uses third-party libraries or other resources that may be +distributed under licenses different than the .NET Core software. + +In the event that we accidentally failed to list a required notice, please +bring it to our attention. Post an issue or email us: + + dotnet@microsoft.com + +The attached notices are provided for information only. + +License notice for ASP.NET +------------------------------- + +Copyright (c) .NET Foundation. All rights reserved. +Licensed under the Apache License, Version 2.0. + +Available at +https://github.com/aspnet/AspNetCore/blob/master/LICENSE.txt + +License notice for Slicing-by-8 +------------------------------- + +http://sourceforge.net/projects/slicing-by-8/ + +Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + + +This software program is licensed subject to the BSD License, available at +http://www.opensource.org/licenses/bsd-license.html. + + +License notice for Unicode data +------------------------------- + +http://www.unicode.org/copyright.html#License + +Copyright © 1991-2017 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +License notice for Zlib +----------------------- + +https://github.com/madler/zlib +http://zlib.net/zlib_license.html + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +*/ + +License notice for Mono +------------------------------- + +http://www.mono-project.com/docs/about-mono/ + +Copyright (c) .NET Foundation Contributors + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for International Organization for Standardization +----------------------------------------------------------------- + +Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +License notice for Intel +------------------------ + +"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xamarin and Novell +------------------------------------- + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Third party notice for W3C +-------------------------- + +"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE +Status: This license takes effect 13 May, 2015. +This work is being provided by the copyright holders under the following license. +License +By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. +Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: +The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. +Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. +Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." +Disclaimers +THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." + +License notice for Bit Twiddling Hacks +-------------------------------------- + +Bit Twiddling Hacks + +By Sean Eron Anderson +seander@cs.stanford.edu + +Individually, the code snippets here are in the public domain (unless otherwise +noted) — feel free to use them however you please. The aggregate collection and +descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are +distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and +without even the implied warranty of merchantability or fitness for a particular +purpose. + +License notice for Brotli +-------------------------------------- + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +compress_fragment.c: +Copyright (c) 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +decode_fuzzer.c: +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + +License notice for Json.NET +------------------------------- + +https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md + +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized base64 encoding / decoding +-------------------------------------------------------- + +Copyright (c) 2005-2007, Nick Galbreath +Copyright (c) 2013-2017, Alfred Klomp +Copyright (c) 2015-2017, Wojciech Mula +Copyright (c) 2016-2017, Matthieu Darbois +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/THIRD-PARTY-NOTICES.TXT.meta b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/THIRD-PARTY-NOTICES.TXT.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/THIRD-PARTY-NOTICES.TXT.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/THIRD-PARTY-NOTICES.TXT.meta diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/lib.meta b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/lib.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/lib.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/lib.meta diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0.meta b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0.meta diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.dll b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.dll similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.dll rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.dll diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.dll.meta b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.dll.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.dll.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.dll.meta diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.xml b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.xml similarity index 98% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.xml rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.xml index 86a96fb3..c9a1c606 100644 --- a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.xml +++ b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.xml @@ -1,2024 +1,2024 @@ - - - - System.Diagnostics.EventLog - - - - Provides data for the event. - - - Initializes a new instance of the class. - - - Initializes a new instance of the class with the specified event log entry. - An that represents the entry that was written. - - - Gets the event log entry that was written to the log. - An that represents the entry that was written to the event log. - - - Represents the method that will handle the event of an . - The source of the event. - An that contains the event data. - - - Represents a placeholder (bookmark) within an event stream. You can use the placeholder to mark a position and return to this position in a stream of events. An instance of this object can be obtained from an object, in which case it corresponds to the position of that event record. - - - Represents a keyword for an event. Keywords are defined in an event provider and are used to group the event with other similar events (based on the usage of the events). - - - Gets the localized name of the keyword. - A string that contains a localized name for this keyword. - - - Gets the non-localized name of the keyword. - A string that contains the non-localized name of this keyword. - - - Gets the numeric value associated with the keyword. - The numeric value associated with the keyword. - - - Contains an event level that is defined in an event provider. The level signifies the severity of the event. - - - Gets the localized name for the event level. The name describes what severity level of events this level is used for. - A string that contains the localized name for the event level. - - - Gets the non-localized name of the event level. - A string that contains the non-localized name of the event level. - - - Gets the numeric value of the event level. - The numeric value of the event level. - - - Contains static information and configuration settings for an event log. Many of the configurations settings were defined by the event provider that created the log. - - - Initializes a new object by specifying the local event log for which to get information and configuration settings. - The name of the local event log for which to get information and configuration settings. - - - Initializes a new object by specifying the name of the log for which to get information and configuration settings. The log can be on the local computer or a remote computer, based on the event log session specified. - The name of the event log for which to get information and configuration settings. - The event log session used to determine the event log service that the specified log belongs to. The session is either connected to the event log service on the local computer or a remote computer. - - - Releases all the resources used by this object. - - - Releases the unmanaged resources used by this object, and optionally releases the managed resources. - - to release both managed and unmanaged resources; to release only unmanaged resources. - - - Gets a value that indicates whether the event log is a classic event log. A classic event log is one that has its events defined in an .mc file instead of a manifest (.xml file) used by the event provider. - - if the event log is a classic log; otherwise, . - - - Gets or sets a value that indicates whether the event log is enabled or disabled. An enabled log is one in which events can be logged, and a disabled log is one in which events cannot be logged. - - if the log is enabled; otherwise, . - - - Gets or sets the file directory path to the location of the file where the events are stored for the log. - A string that contains the path to the event log file. - - - Gets an value that specifies whether the event log is an application, system, or custom event log. - One of the enumeration values. - - - Gets or sets an value that determines how events are handled when the event log becomes full. - One of the enumeration values. - - - Gets the name of the event log. - The name of the event log. - - - Gets an value that determines the type of the event log. - One of the enumeration values. - - - Gets or sets the maximum size, in bytes, that the event log file is allowed to be. When the file reaches this maximum size, it is considered full. - The maximum size, in bytes, that the event log file is allowed to be. - - - Gets the name of the event provider that created this event log. - The name of the event provider that created this event log. - - - Gets the size of the buffer that the event provider uses for publishing events to the log. - The size of the buffer that the event provider uses for publishing events to the log. It can be . - - - Gets the control globally unique identifier (GUID) for the event log if the log is a debug log. If this log is not a debug log, this value is . - A GUID value, or if the log is not a debug log. - - - Gets or sets the keyword mask used by the event provider. - The keyword mask used by the event provider, or if the event provider did not define any keywords. - - - Gets the maximum latency time used by the event provider when publishing events to the log. - The maximum latency time used by the event provider when publishing events to the log, or if no latency time was specified by the event provider. - - - Gets or sets the maximum event level (which defines the severity of the event) that is allowed to be logged in the event log. This value is defined by the event provider. - The maximum event level that is allowed to be logged in the event log, or if the maximum event level was not defined in the event provider. - - - Gets the maximum number of buffers used by the event provider to publish events to the event log. - The maximum number of buffers used by the event provider to publish events to the event log. This value can be . - - - Gets the minimum number of buffers used by the event provider to publish events to the event log. - The minimum number of buffers used by the event provider to publish events to the event log. This value can be . - - - Gets an enumerable collection of the names of all the event providers that can publish events to this event log. - An enumerable collection of strings that contain the event provider names. - - - Saves the configuration settings that. - - - Gets or sets the security descriptor of the event log. The security descriptor defines the users and groups of users that can read and write to the event log. - A string that contains the security descriptor for the event log. - - - Represents the base class for all the exceptions that are thrown when an error occurs while reading event log related information. - - - Initializes a new instance of the class. - - - Initializes a new instance of the class with the error code for the exception. - The error code for the error that occurred while reading or configuring event log related information. For more information and a list of event log related error codes, see http://go.microsoft.com/fwlink/?LinkId=82629. - - - Initializes a new instance of the class with serialized data. - The object that holds the serialized object data about the exception being thrown. - The object that contains contextual information about the source or destination. - - - Initializes a new instance of the class by specifying the error message that describes the current exception. - The error message that describes the current exception. - - - Initializes a new instance of the class with an error message and inner exception. - The error message that describes the current exception. - The Exception instance that caused the current exception. - - - Sets the SerializationInfo object with information about the exception. - The object that holds the serialized object data about the exception thrown. - The object that contains contextual information about the source or destination. - - - Gets the error message that describes the current exception. - Returns a string that contains the error message that describes the current exception. - - - Allows you to access the run-time properties of active event logs and event log files. These properties include the number of events in the log, the size of the log, a value that determines whether the log is full, and the last time the log was written to or accessed. - - - Gets the file attributes of the log file associated with the log. - Returns an integer value. This value can be null. - - - Gets the time that the log file associated with the event log was created. - Returns a object. This value can be null. - - - Gets the size of the file, in bytes, associated with the event log. - Returns a long value. - - - Gets a Boolean value that determines whether the log file has reached its maximum size (the log is full). - Returns if the log is full, and returns if the log is not full. - - - Gets the last time the log file associated with the event log was accessed. - Returns a object. This value can be null. - - - Gets the last time data was written to the log file associated with the event log. - Returns a object. This value can be null. - - - Gets the number of the oldest event record in the event log. - Returns a long value that represents the number of the oldest event record in the event log. This value can be null. - - - Gets the number of event records in the event log. - Returns a long value that represents the number of event records in the event log. This value can be null. - - - Represents the exception thrown when an event provider publishes invalid data in an event. - - - Initializes a new instance of the class. - - - Initializes a new instance of the class with serialized data. - The object that holds the serialized object data about the exception thrown. - The object that contains contextual information about the source or destination. - - - Initializes a new instance of the class by specifying the error message that describes the current exception. - The error message that describes the current exception. - - - Initializes a new instance of the class with an error message and inner exception. - The error message that describes the current exception. - The Exception instance that caused the current exception. - - - Defines the default access permissions for the event log. The Application and System values indicate that the log shares the access control list (ACL) with the appropriate Windows log (the Application or System event logs) and share the Event Tracing for Windows (ETW) session with other logs of the same isolation. All channels with Custom isolation use a private ETW session. - - - The log shares the access control list with the Application event log and shares the ETW session with other logs that have Application isolation. - - - The event log is a custom event log that uses its own private ETW session. - - - The log shares the access control list with the System event log and shares the ETW session with other logs that have System isolation. - - - Represents a link between an event provider and an event log that the provider publishes events into. This object cannot be instantiated. - - - Gets the localized name of the event log. - Returns a string that contains the localized name of the event log. - - - Gets a Boolean value that determines whether the event log is imported, rather than defined in the event provider. An imported event log is defined in a different provider. - Returns if the event log is imported by the event provider, and returns if the event log is not imported by the event provider. - - - Gets the non-localized name of the event log associated with this object. - Returns a string that contains the non-localized name of the event log associated with this object. - - - Determines the behavior for the event log service handles an event log when the log reaches its maximum allowed size (when the event log is full). - - - Archive the log when full, do not overwrite events. The log is automatically archived when necessary. No events are overwritten. - - - New events continue to be stored when the log file is full. Each new incoming event replaces the oldest event in the log. - - - Do not overwrite events. Clear the log manually rather than automatically. - - - Represents the exception that is thrown when a requested event log (usually specified by the name of the event log or the path to the event log file) does not exist. - - - Initializes a new instance of the class. - - - Initializes a new instance of the class with serialized data. - The object that holds the serialized object data about the exception thrown. - The object that contains contextual information about the source or destination. - - - Initializes a new instance of the class by specifying the error message that describes the current exception. - The error message that describes the current exception. - - - Initializes a new instance of the class with an error message and inner exception. - The error message that describes the current exception. - The Exception instance that caused the current exception. - - - Contains an array of strings that represent XPath queries for elements in the XML representation of an event, which is based on the Event Schema. The queries in this object are used to extract values from the event. - - - Initializes a new class instance. - XPath queries used to extract values from the XML representation of the event. - - - Releases all the resources used by this object. - - - Releases the unmanaged resources used by this object, and optionally releases the managed resources. - - to release both managed and unmanaged resources; to release only unmanaged resources. - - - Represents the exception that is thrown when a specified event provider name references a disabled event provider. A disabled event provider cannot publish events. - - - Initializes a new instance of the class. - - - Initializes a new instance of the class with serialized data. - The object that holds the serialized object data about the exception thrown. - The object that contains contextual information about the source or destination. - - - Initializes a new instance of the class by specifying the error message that describes the current exception. - The error message that describes the current exception. - - - Initializes a new instance of the class with an error message and inner exception. - The error message that describes the current exception. - The Exception instance that caused the current exception. - - - Represents a query for events in an event log and the settings that define how the query is executed and on what computer the query is executed on. - - - Initializes a new instance of the class by specifying the target of the query. The target can be an active event log or a log file. - The name of the event log to query, or the path to the event log file to query. - Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. - - - Initializes a new instance of the class by specifying the target of the query and the event query. The target can be an active event log or a log file. - The name of the event log to query, or the path to the event log file to query. - Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. - The event query used to retrieve events that match the query conditions. - - - Gets or sets the Boolean value that determines whether to read events from the newest event in an event log to the oldest event in the log. - Returns if events are read from the newest event in the log to the oldest event, and returns if events are read from the oldest event in the log to the newest event. - - - Gets or sets the session that access the Event Log service on the local computer or a remote computer. This object can be set to access a remote event log by creating a object or an object with this object. - Returns an object. - - - Gets or sets a Boolean value that determines whether this query will continue to retrieve events when the query has an error. - - indicates that the query will continue to retrieve events even if the query fails for some logs, and indicates that this query will not continue to retrieve events when the query fails. - - - Enables you to read events from an event log based on an event query. The events that are read by this object are returned as objects. - - - Initializes a new instance of the class by specifying an event query. - The event query used to retrieve events. - - - Initializes a new instance of the class by specifying an event query and a bookmark that is used as starting position for the query. - The event query used to retrieve events. - The bookmark (placeholder) used as a starting position in the event log or stream of events. Only events logged after the bookmark event will be returned by the query. - - - Initializes a new instance of the class by specifying an active event log to retrieve events from. - The name of the event log to retrieve events from. - - - Initializes a new instance of the class by specifying the name of an event log to retrieve events from or the path to a log file to retrieve events from. - The name of the event log to retrieve events from, or the path to the event log file to retrieve events from. - Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. - - - Gets or sets the number of events retrieved from the stream of events on every read operation. - Returns an integer value. - - - Cancels the current query operation. - - - Releases all the resources used by this object. - - - Releases the unmanaged resources used by this object, and optionally releases the managed resources. - - to release both managed and unmanaged resources; to release only unmanaged resources. - - - Gets the status of each event log or log file associated with the event query in this object. - Returns a list of objects that each contain status information about an event log associated with the event query in this object. - - - Reads the next event that is returned from the event query in this object. - Returns an object. - - - Reads the next event that is returned from the event query in this object. - The maximum time to allow the read operation to run before canceling the operation. - Returns an object. - - - Changes the position in the event stream where the next event that is read will come from by specifying a bookmark event. No events logged before the bookmark event will be retrieved. - The bookmark (placeholder) used as a starting position in the event log or stream of events. Only events that have been logged after the bookmark event will be returned by the query. - - - Changes the position in the event stream where the next event that is read will come from by specifying a bookmark event and an offset number of events from the bookmark. No events logged before the bookmark plus the offset will be retrieved. - The bookmark (placeholder) used as a starting position in the event log or stream of events. Only events that have been logged after the bookmark event will be returned by the query. - The offset number of events to change the position of the bookmark. - - - Changes the position in the event stream where the next event that is read will come from by specifying a starting position and an offset from the starting position. No events logged before the starting position plus the offset will be retrieved. - A value from the enumeration defines where in the stream of events to start querying for events. - The offset number of events to add to the origin. - - - Represents an exception that is thrown when an error occurred while reading, querying, or subscribing to the events in an event log. - - - Initializes a new instance of the class. - - - Initializes a new instance of the class with serialized data. - The object that holds the serialized object data about the exception thrown. - The object that contains contextual information about the source or destination. - - - Initializes a new instance of the class by specifying the error message that describes the current exception. - The error message that describes the current exception. - - - Initializes a new instance of the class with an error message and inner exception. - The error message that describes the current exception. - The Exception instance that caused the current exception. - - - Contains the properties of an event instance for an event that is received from an object. The event properties provide information about the event such as the name of the computer where the event was logged and the time that the event was created. - - - Gets the globally unique identifier (GUID) for the activity in process for which the event is involved. This allows consumers to group related activities. - Returns a GUID value. - - - Gets a placeholder (bookmark) that corresponds to this event. This can be used as a placeholder in a stream of events. - Returns a object. - - - Gets the name of the event log or the event log file in which the event is stored. - Returns a string that contains the name of the event log or the event log file in which the event is stored. - - - Releases the unmanaged resources used by this object, and optionally releases the managed resources. - - to release both managed and unmanaged resources; to release only unmanaged resources. - - - Gets the event message in the current locale. - Returns a string that contains the event message in the current locale. - - - Gets the event message, replacing variables in the message with the specified values. - The values used to replace variables in the event message. Variables are represented by %n, where n is a number. - Returns a string that contains the event message in the current locale. - - - Gets the enumeration of the values of the user-supplied event properties, or the results of XPath-based data if the event has XML representation. - Selects the property values to return. - Returns a list of objects. - - - Gets the identifier for this event. All events with this identifier value represent the same type of event. - Returns an integer value. This value can be null. - - - Gets the keyword mask of the event. Get the value of the property to get the name of the keywords used in this mask. - Returns a long value. This value can be null. - - - Gets the display names of the keywords used in the keyword mask for this event. - Returns an enumerable collection of strings that contain the display names of the keywords used in the keyword mask for this event. - - - Gets the level of the event. The level signifies the severity of the event. For the name of the level, get the value of the property. - Returns a byte value. This value can be null. - - - Gets the display name of the level for this event. - Returns a string that contains the display name of the level for this event. - - - Gets the name of the event log where this event is logged. - Returns a string that contains a name of the event log that contains this event. - - - Gets the name of the computer on which this event was logged. - Returns a string that contains the name of the computer on which this event was logged. - - - Gets a list of query identifiers that this event matches. This event matches a query if the query would return this event. - Returns an enumerable collection of integer values. - - - Gets the opcode of the event. The opcode defines a numeric value that identifies the activity or a point within an activity that the application was performing when it raised the event. For the name of the opcode, get the value of the property. - Returns a short value. This value can be null. - - - Gets the display name of the opcode for this event. - Returns a string that contains the display name of the opcode for this event. - - - Gets the process identifier for the event provider that logged this event. - Returns an integer value. This value can be null. - - - Gets the user-supplied properties of the event. - Returns a list of objects. - - - Gets the globally unique identifier (GUID) of the event provider that published this event. - Returns a GUID value. This value can be null. - - - Gets the name of the event provider that published this event. - Returns a string that contains the name of the event provider that published this event. - - - Gets qualifier numbers that are used for event identification. - Returns an integer value. This value can be null. - - - Gets the event record identifier of the event in the log. - Returns a long value. This value can be null. - - - Gets a globally unique identifier (GUID) for a related activity in a process for which an event is involved. - Returns a GUID value. This value can be null. - - - Gets a task identifier for a portion of an application or a component that publishes an event. A task is a 16-bit value with 16 top values reserved. This type allows any value between 0x0000 and 0xffef to be used. For the name of the task, get the value of the property. - Returns an integer value. This value can be null. - - - Gets the display name of the task for the event. - Returns a string that contains the display name of the task for the event. - - - Gets the thread identifier for the thread that the event provider is running in. - Returns an integer value. This value can be null. - - - Gets the time, in format, that the event was created. - Returns a value. The value can be null. - - - Gets the XML representation of the event. All of the event properties are represented in the event's XML. The XML conforms to the event schema. - Returns a string that contains the XML representation of the event. - - - Gets the security descriptor of the user whose context is used to publish the event. - Returns a value. - - - Gets the version number for the event. - Returns a byte value. This value can be null. - - - Used to access the Event Log service on the local computer or a remote computer so you can manage and gather information about the event logs and event providers on the computer. - - - Initializes a new object, establishes a connection with the local Event Log service. - - - Initializes a new object, and establishes a connection with the Event Log service on the specified computer. The credentials (user name and password) of the user who calls the method is used for the credentials to access the remote computer. - The name of the computer on which to connect to the Event Log service. - - - Initializes a new object, and establishes a connection with the Event Log service on the specified computer. The specified credentials (user name and password) are used for the credentials to access the remote computer. - The name of the computer on which to connect to the Event Log service. - The domain of the specified user. - The user name used to connect to the remote computer. - The password used to connect to the remote computer. - The type of connection to use for the connection to the remote computer. - - - Cancels any operations (such as reading an event log or subscribing to an event log) that are currently active for the Event Log service that this session object is connected to. - - - Clears events from the specified event log. - The name of the event log to clear all the events from. - - - Clears events from the specified event log, and saves the cleared events to the specified file. - The name of the event log to clear all the events from. - The path to the file in which the cleared events will be saved. The file should end in .evtx. - - - Releases all the resources used by this object. - - - Releases the unmanaged resources used by this object, and optionally releases the managed resources. - - to release both managed and unmanaged resources; to release only unmanaged resources. - - - Exports events into an external log file. The events are stored without the event messages. - The name of the event log to export events from, or the path to the event log file to export events from. - Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. - The query used to select the events to export. Only the events returned from the query will be exported. - The path to the log file (ends in .evtx) in which the exported events will be stored after this method is executed. - - - Exports events into an external log file. A flag can be set to indicate that the method will continue exporting events even if the specified query fails for some logs. The events are stored without the event messages. - The name of the event log to export events from, or the path to the event log file to export events from. - Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. - The query used to select the events to export. Only the events returned from the query will be exported. - The path to the log file (ends in .evtx) in which the exported events will be stored after this method is executed. - - indicates that the method will continue exporting events even if the specified query fails for some logs, and indicates that this method will not continue to export events when the specified query fails. - - - Exports events and their messages into an external log file. - The name of the event log to export events from, or the path to the event log file to export events from. - Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. - The query used to select the events to export. Only the events returned from the query will be exported. - The path to the log file (ends in .evtx) in which the exported events will be stored after this method is executed. - - - Exports events and their messages into an external log file. A flag can be set to indicate that the method will continue exporting events even if the specified query fails for some logs. The event messages are exported in the specified language. - The name of the event log to export events from, or the path to the event log file to export events from. - Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. - The query used to select the events to export. Only the events returned from the query will be exported. - The path to the log file (ends in .evtx) in which the exported events will be stored after this method is executed. - - indicates that the method will continue exporting events even if the specified query fails for some logs, and indicates that this method will not continue to export events when the specified query fails. - The culture that specifies which language that the exported event messages will be in. - - - Gets an object that contains runtime information for the specified event log. - The name of the event log to get information about, or the path to the event log file to get information about. - Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. - An object that contains information about the specified log. - - - Gets an enumerable collection of all the event log names that are registered with the Event Log service. - An enumerable collection of strings that contain the event log names. - - - Gets an enumerable collection of all the event provider names that are registered with the Event Log service. An event provider is an application that publishes events to an event log. - An enumerable collection of strings that contain the event provider names. - - - Gets a static predefined session object that is connected to the Event Log service on the local computer. - A predefined session object that is connected to the Event Log service on the local computer. - - - Contains the status code or error code for a specific event log. This status can be used to determine if the event log is available for an operation. - - - Gets the name of the event log for which the status code is obtained. - The name of the event log for which the status code is obtained. - - - Gets the status code or error code for the event log. This status or error is the result of a read or subscription operation on the event log. - The status code or error code for the event log. - - - Defines the type of events that are logged in an event log. Each log can only contain one type of event. - - - These events are primarily for end users, administrators, and support. The events that are found in the Administrative type logs indicate a problem and a well-defined solution that an administrator can act on. An example of an administrative event is an event that occurs when an application fails to connect to a printer. - - - Events in an analytic event log are published in high volume. They describe program operation and indicate problems that cannot be handled by user intervention. - - - Events in a debug type event log are used solely by developers to diagnose a problem for debugging. - - - Events in an operational type event log are used for analyzing and diagnosing a problem or occurrence. They can be used to trigger tools or tasks based on the problem or occurrence. An example of an operational event is an event that occurs when a printer is added or removed from a system. - - - Allows you to subscribe to incoming events. Each time a desired event is published to an event log, the event is raised, and the method that handles this event will be executed. - - - Initializes a new instance of the class by specifying an event query. - Specifies a query for the event subscription. When an event is logged that matches the criteria expressed in the query, then the event is raised. - - - Initializes a new instance of the class by specifying an event query and a bookmark that is used as starting position for the query. - Specifies a query for the event subscription. When an event is logged that matches the criteria expressed in the query, then the event is raised. - The bookmark (placeholder) used as a starting position in the event log or stream of events. Only events that have been logged after the bookmark event will be returned by the query. - - - Initializes a new instance of the class by specifying an event query, a bookmark that is used as starting position for the query, and a Boolean value that determines whether to read the events that already exist in the event log. - Specifies a query for the event subscription. When an event is logged that matches the criteria expressed in the query, then the event is raised. - The bookmark (placeholder) used as a starting position in the event log or stream of events. Only events that have been logged after the bookmark event will be returned by the query. - A Boolean value that determines whether to read the events that already exist in the event log. If this value is , then the existing events are read and if this value is , then the existing events are not read. - - - Initializes a new instance of the class by specifying the name or path to an event log. - The path or name of the event log monitor for events. If any event is logged in this event log, then the event is raised. - - - Releases all the resources used by this object. - - - Releases the unmanaged resources used by this object, and optionally releases the managed resources. - - to release both managed and unmanaged resources; to release only unmanaged resources. - - - Gets or sets a value that indicates whether this object starts delivering events to the event delegate. - - when this object can deliver events to the event delegate; when this object has stopped delivery. - - - Allows setting a delegate (event handler method) that gets called every time an event is published that matches the criteria specified in the event query for this object. - - - Contains the metadata (properties and settings) for an event that is defined in an event provider. - - - Gets the description template associated with the event using the current thread locale for the description language. - A string that contains the description template associated with the event. - - - Gets the identifier of the event that is defined in the event provider. - The event identifier. - - - Gets the keywords associated with the event that is defined in the event provider. - An enumerable collection of the keywords associated with the event. - - - Gets the level associated with the event that is defined in the event provider. The level defines the severity of the event. - The level associated with the event. - - - Gets a link to the event log that receives this event when the provider publishes this event. - A link to the event log. - - - Gets the opcode associated with this event that is defined by an event provider. The opcode defines a numeric value that identifies the activity or a point within an activity that the application was performing when it raised the event. - The opcode associated with this event. - - - Gets the task associated with the event. A task identifies a portion of an application or a component that publishes an event. - The task associated with the event. - - - Gets the template string for the event. Templates are used to describe data that is used by a provider when an event is published. Templates optionally specify XML that provides the structure of an event. The XML allows values that the event publisher provides to be inserted during the rendering of an event. - A string that contains the template for the event. - - - Gets the version of the event that qualifies the event identifier. - A byte value that contains the version of the event. - - - Contains an event opcode that is defined in an event provider. An opcode defines a numeric value that identifies the activity or a point within an activity that the application was performing when it raised the event. - - - Gets the localized name for an event opcode. - The localized name for an event opcode. - - - Gets the non-localized name for an event opcode. - The non-localized name for an event opcode. - - - Gets the numeric value associated with the event opcode. - The numeric value associated with the event opcode. - - - Contains the value of an event property that is specified by the event provider when the event is published. - - - Gets the value of the event property that is specified by the event provider when the event is published. - The value of the event property. - - - Defines the properties of an event instance for an event that is received from an object. The event properties provide information about the event such as the name of the computer where the event was logged and the time the event was created. This class is an abstract class. The class implements this class. - - - Initializes a new instance of the class. - - - Gets the globally unique identifier (GUID) for the activity in process for which the event is involved. This allows consumers to group related activities. - Returns a GUID value. - - - Gets a placeholder (bookmark) that corresponds to this event. This can be used as a placeholder in a stream of events. - Returns a object. - - - Releases all the resources used by this object. - - - Releases the unmanaged resources used by this object, and optionally releases the managed resources. - - to release both managed and unmanaged resources; to release only unmanaged resources. - - - Gets the event message in the current locale. - Returns a string that contains the event message in the current locale. - - - Gets the event message, replacing variables in the message with the specified values. - The values used to replace variables in the event message. Variables are represented by %n, where n is a number. - Returns a string that contains the event message in the current locale. - - - Gets the identifier for this event. All events with this identifier value represent the same type of event. - Returns an integer value. This value can be null. - - - Gets the keyword mask of the event. Get the value of the property to get the name of the keywords used in this mask. - Returns a long value. This value can be null. - - - Gets the display names of the keywords used in the keyword mask for this event. - Returns an enumerable collection of strings that contain the display names of the keywords used in the keyword mask for this event. - - - Gets the level of the event. The level signifies the severity of the event. For the name of the level, get the value of the property. - Returns a byte value. This value can be null. - - - Gets the display name of the level for this event. - Returns a string that contains the display name of the level for this event. - - - Gets the name of the event log where this event is logged. - Returns a string that contains a name of the event log that contains this event. - - - Gets the name of the computer on which this event was logged. - Returns a string that contains the name of the computer on which this event was logged. - - - Gets the opcode of the event. The opcode defines a numeric value that identifies the activity or a point within an activity that the application was performing when it raised the event. For the name of the opcode, get the value of the property. - Returns a short value. This value can be null. - - - Gets the display name of the opcode for this event. - Returns a string that contains the display name of the opcode for this event. - - - Gets the process identifier for the event provider that logged this event. - Returns an integer value. This value can be null. - - - Gets the user-supplied properties of the event. - Returns a list of objects. - - - Gets the globally unique identifier (GUID) of the event provider that published this event. - Returns a GUID value. This value can be null. - - - Gets the name of the event provider that published this event. - Returns a string that contains the name of the event provider that published this event. - - - Gets qualifier numbers that are used for event identification. - Returns an integer value. This value can be null. - - - Gets the event record identifier of the event in the log. - Returns a long value. This value can be null. - - - Gets a globally unique identifier (GUID) for a related activity in a process for which an event is involved. - Returns a GUID value. This value can be null. - - - Gets a task identifier for a portion of an application or a component that publishes an event. A task is a 16-bit value with 16 top values reserved. This type allows any value between 0x0000 and 0xffef to be used. To obtain the task name, get the value of the property. - Returns an integer value. This value can be null. - - - Gets the display name of the task for the event. - Returns a string that contains the display name of the task for the event. - - - Gets the thread identifier for the thread that the event provider is running in. - Returns an integer value. This value can be null. - - - Gets the time, in format, that the event was created. - Returns a value. The value can be null. - - - Gets the XML representation of the event. All of the event properties are represented in the event XML. The XML conforms to the event schema. - Returns a string that contains the XML representation of the event. - - - Gets the security descriptor of the user whose context is used to publish the event. - Returns a value. - - - Gets the version number for the event. - Returns a byte value. This value can be null. - - - When the event is raised, an instance of this object is passed to the delegate method that handles the event. This object contains the event that was published to the event log or the exception that occurred when the event subscription failed. - - - Gets the exception that occurred when the event subscription failed. The exception has a description of why the subscription failed. - The exception that occurred when the event subscription failed. - - - Gets the event record that is published to the event log. This event matches the criteria from the query specified in the event subscription. - The event record. - - - Contains an event task that is defined in an event provider. The task identifies a portion of an application or a component that publishes an event. A task is a 16-bit value with 16 top values reserved. - - - Gets the localized name for the event task. - The localized name for the event task. - - - Gets the event globally unique identifier (GUID) associated with the task. - The event GUID associated with the task. - - - Gets the non-localized name of the event task. - The non-localized name of the event task. - - - Gets the numeric value associated with the task. - The numeric value associated with the task. - - - Specifies that a string contains a name of an event log or the file system path to an event log file. - - - A path parameter contains the file system path to an event log file. - - - A path parameter contains the name of the event log. - - - Contains static information about an event provider, such as the name and id of the provider, and the collection of events defined in the provider. - - - Initializes a new instance of the class by specifying the name of the provider that you want to retrieve information about. - The name of the event provider that you want to retrieve information about. - - - Initializes a new instance of the class by specifying the name of the provider that you want to retrieve information about, the event log service that the provider is registered with, and the language that you want to return the information in. - The name of the event provider that you want to retrieve information about. - The object that specifies whether to get the provider information from a provider on the local computer or a provider on a remote computer. - The culture that specifies the language that the information should be returned in. - - - Gets the localized name of the event provider. - Returns a string that contains the localized name of the event provider. - - - Releases all the resources used by this object. - - - Releases the unmanaged resources used by this object, and optionally releases the managed resources. - - to release both managed and unmanaged resources; to release only unmanaged resources. - - - Gets an enumerable collection of objects, each of which represents an event that is defined in the provider. - Returns an enumerable collection of objects. - - - Gets the base of the URL used to form help requests for the events in this event provider. - Returns a value. - - - Gets the globally unique identifier (GUID) for the event provider. - Returns the GUID value for the event provider. - - - Gets an enumerable collection of objects, each of which represent an event keyword that is defined in the event provider. - Returns an enumerable collection of objects. - - - Gets an enumerable collection of objects, each of which represent a level that is defined in the event provider. - Returns an enumerable collection of objects. - - - Gets an enumerable collection of objects, each of which represent a link to an event log that is used by the event provider. - Returns an enumerable collection of objects. - - - Gets the path of the file that contains the message table resource that has the strings associated with the provider metadata. - Returns a string that contains the path of the provider message file. - - - Gets the unique name of the event provider. - Returns a string that contains the unique name of the event provider. - - - Gets an enumerable collection of objects, each of which represent an opcode that is defined in the event provider. - Returns an enumerable collection of objects. - - - Gets the path of the file that contains the message table resource that has the strings used for parameter substitutions in event descriptions. - Returns a string that contains the path of the file that contains the message table resource that has the strings used for parameter substitutions in event descriptions. - - - Gets the path to the file that contains the metadata associated with the provider. - Returns a string that contains the path to the file that contains the metadata associated with the provider. - - - Gets an enumerable collection of objects, each of which represent a task that is defined in the event provider. - Returns an enumerable collection of objects. - - - Defines values for the type of authentication used during a Remote Procedure Call (RPC) login to a server. This login occurs when you create a object that specifies a connection to a remote computer. - - - Use the default authentication method during RPC login. The default authentication is equivalent to Negotiate. - - - Use Kerberos authentication during RPC login. - - - Use the Negotiate authentication method during RPC login. This allows the client application to select the most appropriate authentication method (NTLM or Kerberos) for the situation. - - - Use Windows NT LAN Manager (NTLM) authentication during RPC login. - - - Defines the standard keywords that are attached to events by the event provider. For more information about keywords, see . - - - Attached to all failed security audit events. This keyword should only be used for events in the Security log. - - - Attached to all successful security audit events. This keyword should only be used for events in the Security log. - - - Attached to transfer events where the related Activity ID (Correlation ID) is a computed value and is not guaranteed to be unique (not a real GUID). - - - Attached to transfer events where the related Activity ID (Correlation ID) is a computed value and is not guaranteed to be unique (not a real GUID). - - - Attached to events which are raised using the RaiseEvent function. - - - This value indicates that no filtering on keyword is performed when the event is published. - - - Attached to all response time events. - - - Attached to all Service Quality Mechanism (SQM) events. - - - Attached to all Windows Diagnostic Infrastructure (WDI) context events. - - - Attached to all Windows Diagnostic Infrastructure (WDI) diagnostic events. - - - Defines the standard event levels that are used in the Event Log service. The level defines the severity of the event. Custom event levels can be defined beyond these standard levels. For more information about levels, see . - - - This level corresponds to critical errors, which is a serious error that has caused a major failure. - - - This level corresponds to normal errors that signify a problem. - - - This level corresponds to informational events or messages that are not errors. These events can help trace the progress or state of an application. - - - This value indicates that not filtering on the level is done during the event publishing. - - - This level corresponds to lengthy events or messages. - - - This level corresponds to warning events. For example, an event that gets published because a disk is nearing full capacity is a warning event. - - - Defines the standard opcodes that are attached to events by the event provider. For more information about opcodes, see . - - - An event with this opcode is a trace collection start event. - - - An event with this opcode is a trace collection stop event. - - - An event with this opcode is an extension event. - - - An event with this opcode is an informational event. - - - An event with this opcode is published when one activity in an application receives data. - - - An event with this opcode is published after an activity in an application replies to an event. - - - An event with this opcode is published after an activity in an application resumes from a suspended state. The event should follow an event with the Suspend opcode. - - - An event with this opcode is published when one activity in an application transfers data or system resources to another activity. - - - An event with this opcode is published when an application starts a new transaction or activity. This can be embedded into another transaction or activity when multiple events with the Start opcode follow each other without an event with a Stop opcode. - - - An event with this opcode is published when an activity or a transaction in an application ends. The event corresponds to the last unpaired event with a Start opcode. - - - An event with this opcode is published when an activity in an application is suspended. - - - Defines the standard tasks that are attached to events by the event provider. For more information about tasks, see . - - - No task is used to identify a portion of an application that publishes an event. - - - Represents language-neutral information for an event log entry. - - - Initializes a new instance of the class using the specified resource identifiers for the localized message and category text of the event entry. - A resource identifier that corresponds to a string defined in the message resource file of the event source. - A resource identifier that corresponds to a string defined in the category resource file of the event source, or zero to specify no category for the event. - The parameter is a negative value or a value larger than . --or- -The parameter is a negative value or a value larger than . - - - Initializes a new instance of the class using the specified resource identifiers for the localized message and category text of the event entry and the specified event log entry type. - A resource identifier that corresponds to a string defined in the message resource file of the event source. - A resource identifier that corresponds to a string defined in the category resource file of the event source, or zero to specify no category for the event. - An value that indicates the event type. - - is not a valid value. - - is a negative value or a value larger than . --or- - is a negative value or a value larger than . - - - Gets or sets the resource identifier that specifies the application-defined category of the event entry. - A numeric category value or resource identifier that corresponds to a string defined in the category resource file of the event source. The default is zero, which signifies that no category will be displayed for the event entry. - The property is set to a negative value or to a value larger than . - - - Gets or sets the event type of the event log entry. - An value that indicates the event entry type. The default value is . - The property is not set to a valid value. - - - Gets or sets the resource identifier that designates the message text of the event entry. - A resource identifier that corresponds to a string defined in the message resource file of the event source. - The property is set to a negative value or to a value larger than . - - - Provides interaction with Windows event logs. - - - Initializes a new instance of the class. Does not associate the instance with any log. - - - Initializes a new instance of the class. Associates the instance with a log on the local computer. - The name of the log on the local computer. - The log name is . - The log name is invalid. - - - Initializes a new instance of the class. Associates the instance with a log on the specified computer. - The name of the log on the specified computer. - The computer on which the log exists. - The log name is . - The log name is invalid. --or- -The computer name is invalid. - - - Initializes a new instance of the class. Associates the instance with a log on the specified computer and creates or assigns the specified source to the . - The name of the log on the specified computer - The computer on which the log exists. - The source of event log entries. - The log name is . - The log name is invalid. --or- -The computer name is invalid. - - - Begins the initialization of an used on a form or used by another component. The initialization occurs at runtime. - - is already initialized. - - - Removes all entries from the event log. - The event log was not cleared successfully. --or- -The log cannot be opened. A Windows error code is not available. - A value is not specified for the property. Make sure the log name is not an empty string. - The log does not exist. - - - Closes the event log and releases read and write handles. - The event log's read handle or write handle was not released successfully. - - - Establishes a valid event source for writing localized event messages, using the specified configuration properties for the event source and the corresponding event log. - The configuration properties for the event source and its target event log. - The computer name specified in is not valid. --or- -The source name specified in is . --or- -The log name specified in is not valid. Event log names must consist of printable characters and cannot include the characters '*', '?', or '\'. --or- -The log name specified in is not valid for user log creation. The Event log names AppEvent, SysEvent, and SecEvent are reserved for system use. --or- -The log name matches an existing event source name. --or- -The source name specified in results in a registry key path longer than 254 characters. --or- -The first 8 characters of the log name specified in are not unique. --or- -The source name specified in is already registered. --or- -The source name specified in matches an existing event log name. - The registry key for the event log could not be opened. - - is . - - - Establishes the specified source name as a valid event source for writing entries to a log on the local computer. This method can also create a new custom log on the local computer. - The source name by which the application is registered on the local computer. - The name of the log the source's entries are written to. Possible values include Application, System, or a custom event log. - - is an empty string ("") or . --or- - is not a valid event log name. Event log names must consist of printable characters, and cannot include the characters '*', '?', or '\'. --or- - is not valid for user log creation. The event log names AppEvent, SysEvent, and SecEvent are reserved for system use. --or- -The log name matches an existing event source name. --or- -The source name results in a registry key path longer than 254 characters. --or- -The first 8 characters of match the first 8 characters of an existing event log name. --or- -The source cannot be registered because it already exists on the local computer. --or- -The source name matches an existing event log name. - The registry key for the event log could not be opened on the local computer. - - - Establishes the specified source name as a valid event source for writing entries to a log on the specified computer. This method can also be used to create a new custom log on the specified computer. - The source by which the application is registered on the specified computer. - The name of the log the source's entries are written to. Possible values include Application, System, or a custom event log. If you do not specify a value, defaults to Application. - The name of the computer to register this event source with, or "." for the local computer. - The is not a valid computer name. --or- - is an empty string ("") or . --or- - is not a valid event log name. Event log names must consist of printable characters, and cannot include the characters '*', '?', or '\'. --or- - is not valid for user log creation. The event log names AppEvent, SysEvent, and SecEvent are reserved for system use. --or- -The log name matches an existing event source name. --or- -The source name results in a registry key path longer than 254 characters. --or- -The first 8 characters of match the first 8 characters of an existing event log name on the specified computer. --or- -The source cannot be registered because it already exists on the specified computer. --or- -The source name matches an existing event source name. - The registry key for the event log could not be opened on the specified computer. - - - Removes an event log from the local computer. - The name of the log to delete. Possible values include: Application, Security, System, and any custom event logs on the computer. - - is an empty string ("") or . - The registry key for the event log could not be opened on the local computer. --or- -The log does not exist on the local computer. - The event log was not cleared successfully. --or- -The log cannot be opened. A Windows error code is not available. - - - Removes an event log from the specified computer. - The name of the log to delete. Possible values include: Application, Security, System, and any custom event logs on the specified computer. - The name of the computer to delete the log from, or "." for the local computer. - - is an empty string ("") or . --or- - is not a valid computer name. - The registry key for the event log could not be opened on the specified computer. --or- -The log does not exist on the specified computer. - The event log was not cleared successfully. --or- -The log cannot be opened. A Windows error code is not available. - - - Removes the event source registration from the event log of the local computer. - The name by which the application is registered in the event log system. - The parameter does not exist in the registry of the local computer. --or- -You do not have write access on the registry key for the event log. - - - Removes the application's event source registration from the specified computer. - The name by which the application is registered in the event log system. - The name of the computer to remove the registration from, or "." for the local computer. - The parameter is invalid. --or- -The parameter does not exist in the registry of the specified computer. --or- -You do not have write access on the registry key for the event log. - - cannot be deleted because in the registry, the parent registry key for does not contain a subkey with the same name. - - - Releases the unmanaged resources used by the , and optionally releases the managed resources. - - to release both managed and unmanaged resources; to release only unmanaged resources. - - - Gets or sets a value indicating whether the receives event notifications. - - if the receives notification when an entry is written to the log; otherwise, . - The event log is on a remote computer. - - - Ends the initialization of an used on a form or by another component. The initialization occurs at runtime. - - - Gets the contents of the event log. - An holding the entries in the event log. Each entry is associated with an instance of the class. - - - Occurs when an entry is written to an event log on the local computer. - - - Determines whether the log exists on the local computer. - The name of the log to search for. Possible values include: Application, Security, System, other application-specific logs (such as those associated with Active Directory), or any custom log on the computer. - - if the log exists on the local computer; otherwise, . - The logName is or the value is empty. - - - Determines whether the log exists on the specified computer. - The log for which to search. Possible values include: Application, Security, System, other application-specific logs (such as those associated with Active Directory), or any custom log on the computer. - The name of the computer on which to search for the log, or "." for the local computer. - - if the log exists on the specified computer; otherwise, . - The parameter is an invalid format. Make sure you have used proper syntax for the computer on which you are searching. --or- -The is or the value is empty. - - - Searches for all event logs on the local computer and creates an array of objects that contain the list. - An array of type that represents the logs on the local computer. - You do not have read access to the registry. --or- -There is no event log service on the computer. - - - Searches for all event logs on the given computer and creates an array of objects that contain the list. - The computer on which to search for event logs. - An array of type that represents the logs on the given computer. - The parameter is an invalid computer name. - You do not have read access to the registry. --or- -There is no event log service on the computer. - - - Gets or sets the name of the log to read from or write to. - The name of the log. This can be Application, System, Security, or a custom log name. The default is an empty string (""). - - - Gets the event log's friendly name. - A name that represents the event log in the system's event viewer. - The specified does not exist in the registry for this computer. - - - Gets the name of the log to which the specified source is registered. - The name of the event source. - The name of the computer on which to look, or "." for the local computer. - The name of the log associated with the specified source in the registry. - - - Gets or sets the name of the computer on which to read or write events. - The name of the server on which the event log resides. The default is the local computer ("."). - The computer name is invalid. - - - Gets or sets the maximum event log size in kilobytes. - The maximum event log size in kilobytes. The default is 512, indicating a maximum file size of 512 kilobytes. - The specified value is less than 64, or greater than 4194240, or not an even multiple of 64. - The value is not a valid log name. --or- -The registry key for the event log could not be opened on the target computer. - - - Gets the number of days to retain entries in the event log. - The number of days that entries in the event log are retained. The default value is 7. - - - Changes the configured behavior for writing new entries when the event log reaches its maximum file size. - The overflow behavior for writing new entries to the event log. - The minimum number of days each event log entry is retained. This parameter is used only if is set to . - - is not a valid value. - - is less than one, or larger than 365. - The value is not a valid log name. --or- -The registry key for the event log could not be opened on the target computer. - - - Gets the configured behavior for storing new entries when the event log reaches its maximum log file size. - The value that specifies the configured behavior for storing new entries when the event log reaches its maximum log size. The default is . - - - Specifies the localized name of the event log, which is displayed in the server Event Viewer. - The fully specified path to a localized resource file. - The resource identifier that indexes a localized string within the resource file. - The value is not a valid log name. --or- -The registry key for the event log could not be opened on the target computer. - - is . - - - Gets or sets the source name to register and use when writing to the event log. - The name registered with the event log as a source of entries. The default is an empty string (""). - The source name results in a registry key path longer than 254 characters. - - - Determines whether an event source is registered on the local computer. - The name of the event source. - - if the event source is registered on the local computer; otherwise, . - - was not found, but some or all of the event logs could not be searched. - - - Determines whether an event source is registered on a specified computer. - The name of the event source. - The name the computer on which to look, or "." for the local computer. - - if the event source is registered on the given computer; otherwise, . - - is an invalid computer name. - - was not found, but some or all of the event logs could not be searched. - - - Gets or sets the object used to marshal the event handler calls issued as a result of an entry written event. - The used to marshal event-handler calls issued as a result of an event on the event log. - - - Writes an information type entry, with the given message text, to the event log. - The string to write to the event log. - The property of the has not been set. --or- -The method attempted to register a new event source, but the computer name in is not valid. --or- -The source is already registered for a different event log. --or- -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). --or- -The source name results in a registry key path longer than 254 characters. - The registry key for the event log could not be opened. - The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. - - - Writes an error, warning, information, success audit, or failure audit entry with the given message text to the event log. - The string to write to the event log. - One of the values. - The property of the has not been set. --or- -The method attempted to register a new event source, but the computer name in is not valid. --or- -The source is already registered for a different event log. --or- -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). --or- -The source name results in a registry key path longer than 254 characters. - - is not a valid . - The registry key for the event log could not be opened. - The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. - - - Writes an entry with the given message text and application-defined event identifier to the event log. - The string to write to the event log. - One of the values. - The application-specific identifier for the event. - The property of the has not been set. --or- -The method attempted to register a new event source, but the computer name in is not valid. --or- -The source is already registered for a different event log. --or- - is less than zero or greater than . --or- -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). --or- -The source name results in a registry key path longer than 254 characters. - The registry key for the event log could not be opened. - - is not a valid . - The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. - - - Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log. - The string to write to the event log. - One of the values. - The application-specific identifier for the event. - The application-specific subcategory associated with the message. - The property of the has not been set. --or- -The method attempted to register a new event source, but the computer name in is not valid. --or- -The source is already registered for a different event log. --or- - is less than zero or greater than . --or- -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). --or- -The source name results in a registry key path longer than 254 characters. - The registry key for the event log could not be opened. - - is not a valid . - The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. - - - Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log, and appends binary data to the message. - The string to write to the event log. - One of the values. - The application-specific identifier for the event. - The application-specific subcategory associated with the message. - An array of bytes that holds the binary data associated with the entry. - The property of the has not been set. --or- -The method attempted to register a new event source, but the computer name in is not valid. --or- -The source is already registered for a different event log. --or- - is less than zero or greater than . --or- -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). --or- -The source name results in a registry key path longer than 254 characters. - The registry key for the event log could not be opened. - - is not a valid . - The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. - - - Writes an information type entry with the given message text to the event log, using the specified registered event source. - The source by which the application is registered on the specified computer. - The string to write to the event log. - The value is an empty string (""). --or- -The value is . --or- -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). --or- -The source name results in a registry key path longer than 254 characters. - The registry key for the event log could not be opened. - The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. - - - Writes an error, warning, information, success audit, or failure audit entry with the given message text to the event log, using the specified registered event source. - The source by which the application is registered on the specified computer. - The string to write to the event log. - One of the values. - The value is an empty string (""). --or- -The value is . --or- -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). --or- -The source name results in a registry key path longer than 254 characters. - The registry key for the event log could not be opened. - - is not a valid . - The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. - - - Writes an entry with the given message text and application-defined event identifier to the event log, using the specified registered event source. - The source by which the application is registered on the specified computer. - The string to write to the event log. - One of the values. - The application-specific identifier for the event. - The value is an empty string (""). --or- -The value is . --or- - is less than zero or greater than . --or- -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). --or- -The source name results in a registry key path longer than 254 characters. - The registry key for the event log could not be opened. - - is not a valid . - The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. - - - Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log, using the specified registered event source. The can be used by the Event Viewer to filter events in the log. - The source by which the application is registered on the specified computer. - The string to write to the event log. - One of the values. - The application-specific identifier for the event. - The application-specific subcategory associated with the message. - The value is an empty string (""). --or- -The value is . --or- - is less than zero or greater than . --or- -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). --or- -The source name results in a registry key path longer than 254 characters. - The registry key for the event log could not be opened. - - is not a valid . - The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. - - - Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log (using the specified registered event source) and appends binary data to the message. - The source by which the application is registered on the specified computer. - The string to write to the event log. - One of the values. - The application-specific identifier for the event. - The application-specific subcategory associated with the message. - An array of bytes that holds the binary data associated with the entry. - The value is an empty string (""). --or- -The value is . --or- - is less than zero or greater than . --or- -The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). --or- -The source name results in a registry key path longer than 254 characters. - - is not a valid . - The registry key for the event log could not be opened. - The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. - - - Writes an event log entry with the given event data, message replacement strings, and associated binary data. - An instance that represents a localized event log entry. - An array of bytes that holds the binary data associated with the entry. - An array of strings to merge into the message text of the event log entry. - The property of the has not been set. --or- -The method attempted to register a new event source, but the computer name in is not valid. --or- -The source is already registered for a different event log. --or- - is less than zero or greater than . --or- - has more than 256 elements. --or- -One of the elements is longer than 32766 bytes. --or- -The source name results in a registry key path longer than 254 characters. - - is . - The registry key for the event log could not be opened. - The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. - - - Writes a localized entry to the event log. - An instance that represents a localized event log entry. - An array of strings to merge into the message text of the event log entry. - The property of the has not been set. --or- -The method attempted to register a new event source, but the computer name in is not valid. --or- -The source is already registered for a different event log. --or- - is less than zero or greater than . --or- - has more than 256 elements. --or- -One of the elements is longer than 32766 bytes. --or- -The source name results in a registry key path longer than 254 characters. - - is . - The registry key for the event log could not be opened. - The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. - - - Writes an event log entry with the given event data, message replacement strings, and associated binary data, and using the specified registered event source. - The name of the event source registered for the application on the specified computer. - An instance that represents a localized event log entry. - An array of bytes that holds the binary data associated with the entry. - An array of strings to merge into the message text of the event log entry. - The value is an empty string (""). --or- -The value is . --or- - is less than zero or greater than . --or- - has more than 256 elements. --or- -One of the elements is longer than 32766 bytes. --or- -The source name results in a registry key path longer than 254 characters. - - is . - The registry key for the event log could not be opened. - The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. - - - Writes an event log entry with the given event data and message replacement strings, using the specified registered event source. - The name of the event source registered for the application on the specified computer. - An instance that represents a localized event log entry. - An array of strings to merge into the message text of the event log entry. - The value is an empty string (""). --or- -The value is . --or- - is less than zero or greater than . --or- - has more than 256 elements. --or- -One of the elements is longer than 32766 bytes. --or- -The source name results in a registry key path longer than 254 characters. - - is . - The registry key for the event log could not be opened. - The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. - - - Encapsulates a single record in the event log. This class cannot be inherited. - - - Gets the text associated with the property for this entry. - The application-specific category text. - The space could not be allocated for one of the insertion strings associated with the category. - - - Gets the category number of the event log entry. - The application-specific category number for this entry. - - - Gets the binary data associated with the entry. - An array of bytes that holds the binary data associated with the entry. - - - Gets the event type of this entry. - The event type that is associated with the entry in the event log. - - - Performs a comparison between two event log entries. - The to compare. - - if the objects are identical; otherwise, . - - - Gets the application-specific event identifier for the current event entry. - The application-specific identifier for the event message. - - - Gets the index of this entry in the event log. - The index of this entry in the event log. - - - Gets the resource identifier that designates the message text of the event entry. - A resource identifier that corresponds to a string definition in the message resource file of the event source. - - - Gets the name of the computer on which this entry was generated. - The name of the computer that contains the event log. - - - Gets the localized message associated with this event entry. - The formatted, localized text for the message. This includes associated replacement strings. - The space could not be allocated for one of the insertion strings associated with the message. - - - Gets the replacement strings associated with the event log entry. - An array that holds the replacement strings stored in the event entry. - - - Gets the name of the application that generated this event. - The name registered with the event log as the source of this event. - - - Populates a with the data needed to serialize the target object. - The to populate with data. - The destination (see ) for this serialization. - - - Gets the local time at which this event was generated. - The local time at which this event was generated. - - - Gets the local time at which this event was written to the log. - The local time at which this event was written to the log. - - - Gets the name of the user who is responsible for this event. - The security identifier (SID) that uniquely identifies a user or group. - Account information could not be obtained for the user's SID. - - - Defines size and enumerators for a collection of instances. - - - Copies the elements of the to an array of instances, starting at a particular array index. - The one-dimensional array of instances that is the destination of the elements copied from the collection. The array must have zero-based indexing. - The zero-based index in the array at which copying begins. - - - Gets the number of entries in the event log (that is, the number of elements in the collection). - The number of entries currently in the event log. - - - Supports a simple iteration over the object. - An object that can be used to iterate over the collection. - - - Gets an entry in the event log, based on an index that starts at 0 (zero). - The zero-based index that is associated with the event log entry. - The event log entry at the location that is specified by the parameter. - - - Copies the elements of the collection to an , starting at a particular index. - The one-dimensional that is the destination of the elements that are copied from the collection. The must have zero-based indexing. - The zero-based index in at which copying begins. - - - Gets a value that indicates whether access to the is synchronized (thread-safe). - - if access to the collection is not synchronized (thread-safe). - - - Gets an object that can be used to synchronize access to the object. - An object that can be used to synchronize access to the collection. - - - Specifies the event type of an event log entry. - - - An error event. This indicates a significant problem the user should know about; usually a loss of functionality or data. - - - A failure audit event. This indicates a security event that occurs when an audited access attempt fails; for example, a failed attempt to open a file. - - - An information event. This indicates a significant, successful operation. - - - A success audit event. This indicates a security event that occurs when an audited access attempt is successful; for example, logging on successfully. - - - A warning event. This indicates a problem that is not immediately significant, but that may signify conditions that could cause future problems. - - - Provides a simple listener that directs tracing or debugging output to an . - - - Initializes a new instance of the class without a trace listener. - - - Initializes a new instance of the class using the specified event log. - The event log to write to. - - - Initializes a new instance of the class using the specified source. - The name of an existing event log source. - - - Closes the event log so that it no longer receives tracing or debugging output. - - - Gets or sets the event log to write to. - The event log to write to. - - - Gets or sets the name of this . - The name of this trace listener. - - - Writes trace information, a data object, and event information to the event log. - An object that contains the current process ID, thread ID, and stack trace information. - A name used to identify the output; typically the name of the application that generated the trace event. - One of the enumeration values that specifies the type of event that has caused the trace. - A numeric identifier for the event. The combination of and uniquely identifies an event. - A data object to write to the output file or stream. - - is not specified. --or- -The log entry string exceeds 32,766 characters. - - - Writes trace information, an array of data objects, and event information to the event log. - An object that contains the current process ID, thread ID, and stack trace information. - A name used to identify the output; typically the name of the application that generated the trace event. - One of the enumeration values that specifies the type of event that has caused the trace. - A numeric identifier for the event. The combination of and uniquely identifies an event. - An array of data objects. - - is not specified. --or- -The log entry string exceeds 32,766 characters. - - - Writes trace information, a message, and event information to the event log. - An object that contains the current process ID, thread ID, and stack trace information. - A name used to identify the output; typically the name of the application that generated the trace event. - One of the enumeration values that specifies the type of event that has caused the trace. - A numeric identifier for the event. The combination of and uniquely identifies an event. - The trace message. - - is not specified. --or- -The log entry string exceeds 32,766 characters. - - - Writes trace information, a formatted array of objects, and event information to the event log. - An object that contains the current process ID, thread ID, and stack trace information. - A name used to identify the output; typically the name of the application that generated the trace event. - One of the enumeration values that specifies the type of event that has caused the trace. - A numeric identifier for the event. The combination of and uniquely identifies an event. - A format string that contains zero or more format items that correspond to objects in the array. - An array containing zero or more objects to format. - - is not specified. --or- -The log entry string exceeds 32,766 characters. - - - Writes a message to the event log for this instance. - The message to write. - - exceeds 32,766 characters. - - - Writes a message to the event log for this instance. - The message to write. - - exceeds 32,766 characters. - - - Represents the configuration settings used to create an event log source on the local computer or a remote computer. - - - Initializes a new instance of the class with a specified event source and event log name. - The name to register with the event log as a source of entries. - The name of the log to which entries from the source are written. - - - Gets or sets the number of categories in the category resource file. - The number of categories in the category resource file. The default value is zero. - The property is set to a negative value or to a value larger than . - - - Gets or sets the path of the resource file that contains category strings for the source. - The path of the category resource file. The default is an empty string (""). - - - Gets or sets the name of the event log to which the source writes entries. - The name of the event log. This can be Application, System, or a custom log name. The default value is "Application." - - - Gets or sets the name of the computer on which to register the event source. - The name of the system on which to register the event source. The default is the local computer ("."). - The computer name is invalid. - - - Gets or sets the path of the message resource file that contains message formatting strings for the source. - The path of the message resource file. The default is an empty string (""). - - - Gets or sets the path of the resource file that contains message parameter strings for the source. - The path of the parameter resource file. The default is an empty string (""). - - - Gets or sets the name to register with the event log as an event source. - The name to register with the event log as a source of entries. The default is an empty string (""). - - - Specifies how to handle entries in an event log that has reached its maximum file size. - - - Indicates that existing entries are retained when the event log is full and new entries are discarded. - - - Indicates that each new entry overwrites the oldest entry when the event log is full. - - - Indicates that new events overwrite events older than specified by the property value when the event log is full. New events are discarded if the event log is full and there are no events older than specified by the property value. - - + + + + System.Diagnostics.EventLog + + + + Provides data for the event. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified event log entry. + An that represents the entry that was written. + + + Gets the event log entry that was written to the log. + An that represents the entry that was written to the event log. + + + Represents the method that will handle the event of an . + The source of the event. + An that contains the event data. + + + Represents a placeholder (bookmark) within an event stream. You can use the placeholder to mark a position and return to this position in a stream of events. An instance of this object can be obtained from an object, in which case it corresponds to the position of that event record. + + + Represents a keyword for an event. Keywords are defined in an event provider and are used to group the event with other similar events (based on the usage of the events). + + + Gets the localized name of the keyword. + A string that contains a localized name for this keyword. + + + Gets the non-localized name of the keyword. + A string that contains the non-localized name of this keyword. + + + Gets the numeric value associated with the keyword. + The numeric value associated with the keyword. + + + Contains an event level that is defined in an event provider. The level signifies the severity of the event. + + + Gets the localized name for the event level. The name describes what severity level of events this level is used for. + A string that contains the localized name for the event level. + + + Gets the non-localized name of the event level. + A string that contains the non-localized name of the event level. + + + Gets the numeric value of the event level. + The numeric value of the event level. + + + Contains static information and configuration settings for an event log. Many of the configurations settings were defined by the event provider that created the log. + + + Initializes a new object by specifying the local event log for which to get information and configuration settings. + The name of the local event log for which to get information and configuration settings. + + + Initializes a new object by specifying the name of the log for which to get information and configuration settings. The log can be on the local computer or a remote computer, based on the event log session specified. + The name of the event log for which to get information and configuration settings. + The event log session used to determine the event log service that the specified log belongs to. The session is either connected to the event log service on the local computer or a remote computer. + + + Releases all the resources used by this object. + + + Releases the unmanaged resources used by this object, and optionally releases the managed resources. + + to release both managed and unmanaged resources; to release only unmanaged resources. + + + Gets a value that indicates whether the event log is a classic event log. A classic event log is one that has its events defined in an .mc file instead of a manifest (.xml file) used by the event provider. + + if the event log is a classic log; otherwise, . + + + Gets or sets a value that indicates whether the event log is enabled or disabled. An enabled log is one in which events can be logged, and a disabled log is one in which events cannot be logged. + + if the log is enabled; otherwise, . + + + Gets or sets the file directory path to the location of the file where the events are stored for the log. + A string that contains the path to the event log file. + + + Gets an value that specifies whether the event log is an application, system, or custom event log. + One of the enumeration values. + + + Gets or sets an value that determines how events are handled when the event log becomes full. + One of the enumeration values. + + + Gets the name of the event log. + The name of the event log. + + + Gets an value that determines the type of the event log. + One of the enumeration values. + + + Gets or sets the maximum size, in bytes, that the event log file is allowed to be. When the file reaches this maximum size, it is considered full. + The maximum size, in bytes, that the event log file is allowed to be. + + + Gets the name of the event provider that created this event log. + The name of the event provider that created this event log. + + + Gets the size of the buffer that the event provider uses for publishing events to the log. + The size of the buffer that the event provider uses for publishing events to the log. It can be . + + + Gets the control globally unique identifier (GUID) for the event log if the log is a debug log. If this log is not a debug log, this value is . + A GUID value, or if the log is not a debug log. + + + Gets or sets the keyword mask used by the event provider. + The keyword mask used by the event provider, or if the event provider did not define any keywords. + + + Gets the maximum latency time used by the event provider when publishing events to the log. + The maximum latency time used by the event provider when publishing events to the log, or if no latency time was specified by the event provider. + + + Gets or sets the maximum event level (which defines the severity of the event) that is allowed to be logged in the event log. This value is defined by the event provider. + The maximum event level that is allowed to be logged in the event log, or if the maximum event level was not defined in the event provider. + + + Gets the maximum number of buffers used by the event provider to publish events to the event log. + The maximum number of buffers used by the event provider to publish events to the event log. This value can be . + + + Gets the minimum number of buffers used by the event provider to publish events to the event log. + The minimum number of buffers used by the event provider to publish events to the event log. This value can be . + + + Gets an enumerable collection of the names of all the event providers that can publish events to this event log. + An enumerable collection of strings that contain the event provider names. + + + Saves the configuration settings that. + + + Gets or sets the security descriptor of the event log. The security descriptor defines the users and groups of users that can read and write to the event log. + A string that contains the security descriptor for the event log. + + + Represents the base class for all the exceptions that are thrown when an error occurs while reading event log related information. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the error code for the exception. + The error code for the error that occurred while reading or configuring event log related information. For more information and a list of event log related error codes, see http://go.microsoft.com/fwlink/?LinkId=82629. + + + Initializes a new instance of the class with serialized data. + The object that holds the serialized object data about the exception being thrown. + The object that contains contextual information about the source or destination. + + + Initializes a new instance of the class by specifying the error message that describes the current exception. + The error message that describes the current exception. + + + Initializes a new instance of the class with an error message and inner exception. + The error message that describes the current exception. + The Exception instance that caused the current exception. + + + Sets the SerializationInfo object with information about the exception. + The object that holds the serialized object data about the exception thrown. + The object that contains contextual information about the source or destination. + + + Gets the error message that describes the current exception. + Returns a string that contains the error message that describes the current exception. + + + Allows you to access the run-time properties of active event logs and event log files. These properties include the number of events in the log, the size of the log, a value that determines whether the log is full, and the last time the log was written to or accessed. + + + Gets the file attributes of the log file associated with the log. + Returns an integer value. This value can be null. + + + Gets the time that the log file associated with the event log was created. + Returns a object. This value can be null. + + + Gets the size of the file, in bytes, associated with the event log. + Returns a long value. + + + Gets a Boolean value that determines whether the log file has reached its maximum size (the log is full). + Returns if the log is full, and returns if the log is not full. + + + Gets the last time the log file associated with the event log was accessed. + Returns a object. This value can be null. + + + Gets the last time data was written to the log file associated with the event log. + Returns a object. This value can be null. + + + Gets the number of the oldest event record in the event log. + Returns a long value that represents the number of the oldest event record in the event log. This value can be null. + + + Gets the number of event records in the event log. + Returns a long value that represents the number of event records in the event log. This value can be null. + + + Represents the exception thrown when an event provider publishes invalid data in an event. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with serialized data. + The object that holds the serialized object data about the exception thrown. + The object that contains contextual information about the source or destination. + + + Initializes a new instance of the class by specifying the error message that describes the current exception. + The error message that describes the current exception. + + + Initializes a new instance of the class with an error message and inner exception. + The error message that describes the current exception. + The Exception instance that caused the current exception. + + + Defines the default access permissions for the event log. The Application and System values indicate that the log shares the access control list (ACL) with the appropriate Windows log (the Application or System event logs) and share the Event Tracing for Windows (ETW) session with other logs of the same isolation. All channels with Custom isolation use a private ETW session. + + + The log shares the access control list with the Application event log and shares the ETW session with other logs that have Application isolation. + + + The event log is a custom event log that uses its own private ETW session. + + + The log shares the access control list with the System event log and shares the ETW session with other logs that have System isolation. + + + Represents a link between an event provider and an event log that the provider publishes events into. This object cannot be instantiated. + + + Gets the localized name of the event log. + Returns a string that contains the localized name of the event log. + + + Gets a Boolean value that determines whether the event log is imported, rather than defined in the event provider. An imported event log is defined in a different provider. + Returns if the event log is imported by the event provider, and returns if the event log is not imported by the event provider. + + + Gets the non-localized name of the event log associated with this object. + Returns a string that contains the non-localized name of the event log associated with this object. + + + Determines the behavior for the event log service handles an event log when the log reaches its maximum allowed size (when the event log is full). + + + Archive the log when full, do not overwrite events. The log is automatically archived when necessary. No events are overwritten. + + + New events continue to be stored when the log file is full. Each new incoming event replaces the oldest event in the log. + + + Do not overwrite events. Clear the log manually rather than automatically. + + + Represents the exception that is thrown when a requested event log (usually specified by the name of the event log or the path to the event log file) does not exist. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with serialized data. + The object that holds the serialized object data about the exception thrown. + The object that contains contextual information about the source or destination. + + + Initializes a new instance of the class by specifying the error message that describes the current exception. + The error message that describes the current exception. + + + Initializes a new instance of the class with an error message and inner exception. + The error message that describes the current exception. + The Exception instance that caused the current exception. + + + Contains an array of strings that represent XPath queries for elements in the XML representation of an event, which is based on the Event Schema. The queries in this object are used to extract values from the event. + + + Initializes a new class instance. + XPath queries used to extract values from the XML representation of the event. + + + Releases all the resources used by this object. + + + Releases the unmanaged resources used by this object, and optionally releases the managed resources. + + to release both managed and unmanaged resources; to release only unmanaged resources. + + + Represents the exception that is thrown when a specified event provider name references a disabled event provider. A disabled event provider cannot publish events. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with serialized data. + The object that holds the serialized object data about the exception thrown. + The object that contains contextual information about the source or destination. + + + Initializes a new instance of the class by specifying the error message that describes the current exception. + The error message that describes the current exception. + + + Initializes a new instance of the class with an error message and inner exception. + The error message that describes the current exception. + The Exception instance that caused the current exception. + + + Represents a query for events in an event log and the settings that define how the query is executed and on what computer the query is executed on. + + + Initializes a new instance of the class by specifying the target of the query. The target can be an active event log or a log file. + The name of the event log to query, or the path to the event log file to query. + Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. + + + Initializes a new instance of the class by specifying the target of the query and the event query. The target can be an active event log or a log file. + The name of the event log to query, or the path to the event log file to query. + Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. + The event query used to retrieve events that match the query conditions. + + + Gets or sets the Boolean value that determines whether to read events from the newest event in an event log to the oldest event in the log. + Returns if events are read from the newest event in the log to the oldest event, and returns if events are read from the oldest event in the log to the newest event. + + + Gets or sets the session that access the Event Log service on the local computer or a remote computer. This object can be set to access a remote event log by creating a object or an object with this object. + Returns an object. + + + Gets or sets a Boolean value that determines whether this query will continue to retrieve events when the query has an error. + + indicates that the query will continue to retrieve events even if the query fails for some logs, and indicates that this query will not continue to retrieve events when the query fails. + + + Enables you to read events from an event log based on an event query. The events that are read by this object are returned as objects. + + + Initializes a new instance of the class by specifying an event query. + The event query used to retrieve events. + + + Initializes a new instance of the class by specifying an event query and a bookmark that is used as starting position for the query. + The event query used to retrieve events. + The bookmark (placeholder) used as a starting position in the event log or stream of events. Only events logged after the bookmark event will be returned by the query. + + + Initializes a new instance of the class by specifying an active event log to retrieve events from. + The name of the event log to retrieve events from. + + + Initializes a new instance of the class by specifying the name of an event log to retrieve events from or the path to a log file to retrieve events from. + The name of the event log to retrieve events from, or the path to the event log file to retrieve events from. + Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. + + + Gets or sets the number of events retrieved from the stream of events on every read operation. + Returns an integer value. + + + Cancels the current query operation. + + + Releases all the resources used by this object. + + + Releases the unmanaged resources used by this object, and optionally releases the managed resources. + + to release both managed and unmanaged resources; to release only unmanaged resources. + + + Gets the status of each event log or log file associated with the event query in this object. + Returns a list of objects that each contain status information about an event log associated with the event query in this object. + + + Reads the next event that is returned from the event query in this object. + Returns an object. + + + Reads the next event that is returned from the event query in this object. + The maximum time to allow the read operation to run before canceling the operation. + Returns an object. + + + Changes the position in the event stream where the next event that is read will come from by specifying a bookmark event. No events logged before the bookmark event will be retrieved. + The bookmark (placeholder) used as a starting position in the event log or stream of events. Only events that have been logged after the bookmark event will be returned by the query. + + + Changes the position in the event stream where the next event that is read will come from by specifying a bookmark event and an offset number of events from the bookmark. No events logged before the bookmark plus the offset will be retrieved. + The bookmark (placeholder) used as a starting position in the event log or stream of events. Only events that have been logged after the bookmark event will be returned by the query. + The offset number of events to change the position of the bookmark. + + + Changes the position in the event stream where the next event that is read will come from by specifying a starting position and an offset from the starting position. No events logged before the starting position plus the offset will be retrieved. + A value from the enumeration defines where in the stream of events to start querying for events. + The offset number of events to add to the origin. + + + Represents an exception that is thrown when an error occurred while reading, querying, or subscribing to the events in an event log. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with serialized data. + The object that holds the serialized object data about the exception thrown. + The object that contains contextual information about the source or destination. + + + Initializes a new instance of the class by specifying the error message that describes the current exception. + The error message that describes the current exception. + + + Initializes a new instance of the class with an error message and inner exception. + The error message that describes the current exception. + The Exception instance that caused the current exception. + + + Contains the properties of an event instance for an event that is received from an object. The event properties provide information about the event such as the name of the computer where the event was logged and the time that the event was created. + + + Gets the globally unique identifier (GUID) for the activity in process for which the event is involved. This allows consumers to group related activities. + Returns a GUID value. + + + Gets a placeholder (bookmark) that corresponds to this event. This can be used as a placeholder in a stream of events. + Returns a object. + + + Gets the name of the event log or the event log file in which the event is stored. + Returns a string that contains the name of the event log or the event log file in which the event is stored. + + + Releases the unmanaged resources used by this object, and optionally releases the managed resources. + + to release both managed and unmanaged resources; to release only unmanaged resources. + + + Gets the event message in the current locale. + Returns a string that contains the event message in the current locale. + + + Gets the event message, replacing variables in the message with the specified values. + The values used to replace variables in the event message. Variables are represented by %n, where n is a number. + Returns a string that contains the event message in the current locale. + + + Gets the enumeration of the values of the user-supplied event properties, or the results of XPath-based data if the event has XML representation. + Selects the property values to return. + Returns a list of objects. + + + Gets the identifier for this event. All events with this identifier value represent the same type of event. + Returns an integer value. This value can be null. + + + Gets the keyword mask of the event. Get the value of the property to get the name of the keywords used in this mask. + Returns a long value. This value can be null. + + + Gets the display names of the keywords used in the keyword mask for this event. + Returns an enumerable collection of strings that contain the display names of the keywords used in the keyword mask for this event. + + + Gets the level of the event. The level signifies the severity of the event. For the name of the level, get the value of the property. + Returns a byte value. This value can be null. + + + Gets the display name of the level for this event. + Returns a string that contains the display name of the level for this event. + + + Gets the name of the event log where this event is logged. + Returns a string that contains a name of the event log that contains this event. + + + Gets the name of the computer on which this event was logged. + Returns a string that contains the name of the computer on which this event was logged. + + + Gets a list of query identifiers that this event matches. This event matches a query if the query would return this event. + Returns an enumerable collection of integer values. + + + Gets the opcode of the event. The opcode defines a numeric value that identifies the activity or a point within an activity that the application was performing when it raised the event. For the name of the opcode, get the value of the property. + Returns a short value. This value can be null. + + + Gets the display name of the opcode for this event. + Returns a string that contains the display name of the opcode for this event. + + + Gets the process identifier for the event provider that logged this event. + Returns an integer value. This value can be null. + + + Gets the user-supplied properties of the event. + Returns a list of objects. + + + Gets the globally unique identifier (GUID) of the event provider that published this event. + Returns a GUID value. This value can be null. + + + Gets the name of the event provider that published this event. + Returns a string that contains the name of the event provider that published this event. + + + Gets qualifier numbers that are used for event identification. + Returns an integer value. This value can be null. + + + Gets the event record identifier of the event in the log. + Returns a long value. This value can be null. + + + Gets a globally unique identifier (GUID) for a related activity in a process for which an event is involved. + Returns a GUID value. This value can be null. + + + Gets a task identifier for a portion of an application or a component that publishes an event. A task is a 16-bit value with 16 top values reserved. This type allows any value between 0x0000 and 0xffef to be used. For the name of the task, get the value of the property. + Returns an integer value. This value can be null. + + + Gets the display name of the task for the event. + Returns a string that contains the display name of the task for the event. + + + Gets the thread identifier for the thread that the event provider is running in. + Returns an integer value. This value can be null. + + + Gets the time, in format, that the event was created. + Returns a value. The value can be null. + + + Gets the XML representation of the event. All of the event properties are represented in the event's XML. The XML conforms to the event schema. + Returns a string that contains the XML representation of the event. + + + Gets the security descriptor of the user whose context is used to publish the event. + Returns a value. + + + Gets the version number for the event. + Returns a byte value. This value can be null. + + + Used to access the Event Log service on the local computer or a remote computer so you can manage and gather information about the event logs and event providers on the computer. + + + Initializes a new object, establishes a connection with the local Event Log service. + + + Initializes a new object, and establishes a connection with the Event Log service on the specified computer. The credentials (user name and password) of the user who calls the method is used for the credentials to access the remote computer. + The name of the computer on which to connect to the Event Log service. + + + Initializes a new object, and establishes a connection with the Event Log service on the specified computer. The specified credentials (user name and password) are used for the credentials to access the remote computer. + The name of the computer on which to connect to the Event Log service. + The domain of the specified user. + The user name used to connect to the remote computer. + The password used to connect to the remote computer. + The type of connection to use for the connection to the remote computer. + + + Cancels any operations (such as reading an event log or subscribing to an event log) that are currently active for the Event Log service that this session object is connected to. + + + Clears events from the specified event log. + The name of the event log to clear all the events from. + + + Clears events from the specified event log, and saves the cleared events to the specified file. + The name of the event log to clear all the events from. + The path to the file in which the cleared events will be saved. The file should end in .evtx. + + + Releases all the resources used by this object. + + + Releases the unmanaged resources used by this object, and optionally releases the managed resources. + + to release both managed and unmanaged resources; to release only unmanaged resources. + + + Exports events into an external log file. The events are stored without the event messages. + The name of the event log to export events from, or the path to the event log file to export events from. + Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. + The query used to select the events to export. Only the events returned from the query will be exported. + The path to the log file (ends in .evtx) in which the exported events will be stored after this method is executed. + + + Exports events into an external log file. A flag can be set to indicate that the method will continue exporting events even if the specified query fails for some logs. The events are stored without the event messages. + The name of the event log to export events from, or the path to the event log file to export events from. + Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. + The query used to select the events to export. Only the events returned from the query will be exported. + The path to the log file (ends in .evtx) in which the exported events will be stored after this method is executed. + + indicates that the method will continue exporting events even if the specified query fails for some logs, and indicates that this method will not continue to export events when the specified query fails. + + + Exports events and their messages into an external log file. + The name of the event log to export events from, or the path to the event log file to export events from. + Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. + The query used to select the events to export. Only the events returned from the query will be exported. + The path to the log file (ends in .evtx) in which the exported events will be stored after this method is executed. + + + Exports events and their messages into an external log file. A flag can be set to indicate that the method will continue exporting events even if the specified query fails for some logs. The event messages are exported in the specified language. + The name of the event log to export events from, or the path to the event log file to export events from. + Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. + The query used to select the events to export. Only the events returned from the query will be exported. + The path to the log file (ends in .evtx) in which the exported events will be stored after this method is executed. + + indicates that the method will continue exporting events even if the specified query fails for some logs, and indicates that this method will not continue to export events when the specified query fails. + The culture that specifies which language that the exported event messages will be in. + + + Gets an object that contains runtime information for the specified event log. + The name of the event log to get information about, or the path to the event log file to get information about. + Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file. + An object that contains information about the specified log. + + + Gets an enumerable collection of all the event log names that are registered with the Event Log service. + An enumerable collection of strings that contain the event log names. + + + Gets an enumerable collection of all the event provider names that are registered with the Event Log service. An event provider is an application that publishes events to an event log. + An enumerable collection of strings that contain the event provider names. + + + Gets a static predefined session object that is connected to the Event Log service on the local computer. + A predefined session object that is connected to the Event Log service on the local computer. + + + Contains the status code or error code for a specific event log. This status can be used to determine if the event log is available for an operation. + + + Gets the name of the event log for which the status code is obtained. + The name of the event log for which the status code is obtained. + + + Gets the status code or error code for the event log. This status or error is the result of a read or subscription operation on the event log. + The status code or error code for the event log. + + + Defines the type of events that are logged in an event log. Each log can only contain one type of event. + + + These events are primarily for end users, administrators, and support. The events that are found in the Administrative type logs indicate a problem and a well-defined solution that an administrator can act on. An example of an administrative event is an event that occurs when an application fails to connect to a printer. + + + Events in an analytic event log are published in high volume. They describe program operation and indicate problems that cannot be handled by user intervention. + + + Events in a debug type event log are used solely by developers to diagnose a problem for debugging. + + + Events in an operational type event log are used for analyzing and diagnosing a problem or occurrence. They can be used to trigger tools or tasks based on the problem or occurrence. An example of an operational event is an event that occurs when a printer is added or removed from a system. + + + Allows you to subscribe to incoming events. Each time a desired event is published to an event log, the event is raised, and the method that handles this event will be executed. + + + Initializes a new instance of the class by specifying an event query. + Specifies a query for the event subscription. When an event is logged that matches the criteria expressed in the query, then the event is raised. + + + Initializes a new instance of the class by specifying an event query and a bookmark that is used as starting position for the query. + Specifies a query for the event subscription. When an event is logged that matches the criteria expressed in the query, then the event is raised. + The bookmark (placeholder) used as a starting position in the event log or stream of events. Only events that have been logged after the bookmark event will be returned by the query. + + + Initializes a new instance of the class by specifying an event query, a bookmark that is used as starting position for the query, and a Boolean value that determines whether to read the events that already exist in the event log. + Specifies a query for the event subscription. When an event is logged that matches the criteria expressed in the query, then the event is raised. + The bookmark (placeholder) used as a starting position in the event log or stream of events. Only events that have been logged after the bookmark event will be returned by the query. + A Boolean value that determines whether to read the events that already exist in the event log. If this value is , then the existing events are read and if this value is , then the existing events are not read. + + + Initializes a new instance of the class by specifying the name or path to an event log. + The path or name of the event log monitor for events. If any event is logged in this event log, then the event is raised. + + + Releases all the resources used by this object. + + + Releases the unmanaged resources used by this object, and optionally releases the managed resources. + + to release both managed and unmanaged resources; to release only unmanaged resources. + + + Gets or sets a value that indicates whether this object starts delivering events to the event delegate. + + when this object can deliver events to the event delegate; when this object has stopped delivery. + + + Allows setting a delegate (event handler method) that gets called every time an event is published that matches the criteria specified in the event query for this object. + + + Contains the metadata (properties and settings) for an event that is defined in an event provider. + + + Gets the description template associated with the event using the current thread locale for the description language. + A string that contains the description template associated with the event. + + + Gets the identifier of the event that is defined in the event provider. + The event identifier. + + + Gets the keywords associated with the event that is defined in the event provider. + An enumerable collection of the keywords associated with the event. + + + Gets the level associated with the event that is defined in the event provider. The level defines the severity of the event. + The level associated with the event. + + + Gets a link to the event log that receives this event when the provider publishes this event. + A link to the event log. + + + Gets the opcode associated with this event that is defined by an event provider. The opcode defines a numeric value that identifies the activity or a point within an activity that the application was performing when it raised the event. + The opcode associated with this event. + + + Gets the task associated with the event. A task identifies a portion of an application or a component that publishes an event. + The task associated with the event. + + + Gets the template string for the event. Templates are used to describe data that is used by a provider when an event is published. Templates optionally specify XML that provides the structure of an event. The XML allows values that the event publisher provides to be inserted during the rendering of an event. + A string that contains the template for the event. + + + Gets the version of the event that qualifies the event identifier. + A byte value that contains the version of the event. + + + Contains an event opcode that is defined in an event provider. An opcode defines a numeric value that identifies the activity or a point within an activity that the application was performing when it raised the event. + + + Gets the localized name for an event opcode. + The localized name for an event opcode. + + + Gets the non-localized name for an event opcode. + The non-localized name for an event opcode. + + + Gets the numeric value associated with the event opcode. + The numeric value associated with the event opcode. + + + Contains the value of an event property that is specified by the event provider when the event is published. + + + Gets the value of the event property that is specified by the event provider when the event is published. + The value of the event property. + + + Defines the properties of an event instance for an event that is received from an object. The event properties provide information about the event such as the name of the computer where the event was logged and the time the event was created. This class is an abstract class. The class implements this class. + + + Initializes a new instance of the class. + + + Gets the globally unique identifier (GUID) for the activity in process for which the event is involved. This allows consumers to group related activities. + Returns a GUID value. + + + Gets a placeholder (bookmark) that corresponds to this event. This can be used as a placeholder in a stream of events. + Returns a object. + + + Releases all the resources used by this object. + + + Releases the unmanaged resources used by this object, and optionally releases the managed resources. + + to release both managed and unmanaged resources; to release only unmanaged resources. + + + Gets the event message in the current locale. + Returns a string that contains the event message in the current locale. + + + Gets the event message, replacing variables in the message with the specified values. + The values used to replace variables in the event message. Variables are represented by %n, where n is a number. + Returns a string that contains the event message in the current locale. + + + Gets the identifier for this event. All events with this identifier value represent the same type of event. + Returns an integer value. This value can be null. + + + Gets the keyword mask of the event. Get the value of the property to get the name of the keywords used in this mask. + Returns a long value. This value can be null. + + + Gets the display names of the keywords used in the keyword mask for this event. + Returns an enumerable collection of strings that contain the display names of the keywords used in the keyword mask for this event. + + + Gets the level of the event. The level signifies the severity of the event. For the name of the level, get the value of the property. + Returns a byte value. This value can be null. + + + Gets the display name of the level for this event. + Returns a string that contains the display name of the level for this event. + + + Gets the name of the event log where this event is logged. + Returns a string that contains a name of the event log that contains this event. + + + Gets the name of the computer on which this event was logged. + Returns a string that contains the name of the computer on which this event was logged. + + + Gets the opcode of the event. The opcode defines a numeric value that identifies the activity or a point within an activity that the application was performing when it raised the event. For the name of the opcode, get the value of the property. + Returns a short value. This value can be null. + + + Gets the display name of the opcode for this event. + Returns a string that contains the display name of the opcode for this event. + + + Gets the process identifier for the event provider that logged this event. + Returns an integer value. This value can be null. + + + Gets the user-supplied properties of the event. + Returns a list of objects. + + + Gets the globally unique identifier (GUID) of the event provider that published this event. + Returns a GUID value. This value can be null. + + + Gets the name of the event provider that published this event. + Returns a string that contains the name of the event provider that published this event. + + + Gets qualifier numbers that are used for event identification. + Returns an integer value. This value can be null. + + + Gets the event record identifier of the event in the log. + Returns a long value. This value can be null. + + + Gets a globally unique identifier (GUID) for a related activity in a process for which an event is involved. + Returns a GUID value. This value can be null. + + + Gets a task identifier for a portion of an application or a component that publishes an event. A task is a 16-bit value with 16 top values reserved. This type allows any value between 0x0000 and 0xffef to be used. To obtain the task name, get the value of the property. + Returns an integer value. This value can be null. + + + Gets the display name of the task for the event. + Returns a string that contains the display name of the task for the event. + + + Gets the thread identifier for the thread that the event provider is running in. + Returns an integer value. This value can be null. + + + Gets the time, in format, that the event was created. + Returns a value. The value can be null. + + + Gets the XML representation of the event. All of the event properties are represented in the event XML. The XML conforms to the event schema. + Returns a string that contains the XML representation of the event. + + + Gets the security descriptor of the user whose context is used to publish the event. + Returns a value. + + + Gets the version number for the event. + Returns a byte value. This value can be null. + + + When the event is raised, an instance of this object is passed to the delegate method that handles the event. This object contains the event that was published to the event log or the exception that occurred when the event subscription failed. + + + Gets the exception that occurred when the event subscription failed. The exception has a description of why the subscription failed. + The exception that occurred when the event subscription failed. + + + Gets the event record that is published to the event log. This event matches the criteria from the query specified in the event subscription. + The event record. + + + Contains an event task that is defined in an event provider. The task identifies a portion of an application or a component that publishes an event. A task is a 16-bit value with 16 top values reserved. + + + Gets the localized name for the event task. + The localized name for the event task. + + + Gets the event globally unique identifier (GUID) associated with the task. + The event GUID associated with the task. + + + Gets the non-localized name of the event task. + The non-localized name of the event task. + + + Gets the numeric value associated with the task. + The numeric value associated with the task. + + + Specifies that a string contains a name of an event log or the file system path to an event log file. + + + A path parameter contains the file system path to an event log file. + + + A path parameter contains the name of the event log. + + + Contains static information about an event provider, such as the name and id of the provider, and the collection of events defined in the provider. + + + Initializes a new instance of the class by specifying the name of the provider that you want to retrieve information about. + The name of the event provider that you want to retrieve information about. + + + Initializes a new instance of the class by specifying the name of the provider that you want to retrieve information about, the event log service that the provider is registered with, and the language that you want to return the information in. + The name of the event provider that you want to retrieve information about. + The object that specifies whether to get the provider information from a provider on the local computer or a provider on a remote computer. + The culture that specifies the language that the information should be returned in. + + + Gets the localized name of the event provider. + Returns a string that contains the localized name of the event provider. + + + Releases all the resources used by this object. + + + Releases the unmanaged resources used by this object, and optionally releases the managed resources. + + to release both managed and unmanaged resources; to release only unmanaged resources. + + + Gets an enumerable collection of objects, each of which represents an event that is defined in the provider. + Returns an enumerable collection of objects. + + + Gets the base of the URL used to form help requests for the events in this event provider. + Returns a value. + + + Gets the globally unique identifier (GUID) for the event provider. + Returns the GUID value for the event provider. + + + Gets an enumerable collection of objects, each of which represent an event keyword that is defined in the event provider. + Returns an enumerable collection of objects. + + + Gets an enumerable collection of objects, each of which represent a level that is defined in the event provider. + Returns an enumerable collection of objects. + + + Gets an enumerable collection of objects, each of which represent a link to an event log that is used by the event provider. + Returns an enumerable collection of objects. + + + Gets the path of the file that contains the message table resource that has the strings associated with the provider metadata. + Returns a string that contains the path of the provider message file. + + + Gets the unique name of the event provider. + Returns a string that contains the unique name of the event provider. + + + Gets an enumerable collection of objects, each of which represent an opcode that is defined in the event provider. + Returns an enumerable collection of objects. + + + Gets the path of the file that contains the message table resource that has the strings used for parameter substitutions in event descriptions. + Returns a string that contains the path of the file that contains the message table resource that has the strings used for parameter substitutions in event descriptions. + + + Gets the path to the file that contains the metadata associated with the provider. + Returns a string that contains the path to the file that contains the metadata associated with the provider. + + + Gets an enumerable collection of objects, each of which represent a task that is defined in the event provider. + Returns an enumerable collection of objects. + + + Defines values for the type of authentication used during a Remote Procedure Call (RPC) login to a server. This login occurs when you create a object that specifies a connection to a remote computer. + + + Use the default authentication method during RPC login. The default authentication is equivalent to Negotiate. + + + Use Kerberos authentication during RPC login. + + + Use the Negotiate authentication method during RPC login. This allows the client application to select the most appropriate authentication method (NTLM or Kerberos) for the situation. + + + Use Windows NT LAN Manager (NTLM) authentication during RPC login. + + + Defines the standard keywords that are attached to events by the event provider. For more information about keywords, see . + + + Attached to all failed security audit events. This keyword should only be used for events in the Security log. + + + Attached to all successful security audit events. This keyword should only be used for events in the Security log. + + + Attached to transfer events where the related Activity ID (Correlation ID) is a computed value and is not guaranteed to be unique (not a real GUID). + + + Attached to transfer events where the related Activity ID (Correlation ID) is a computed value and is not guaranteed to be unique (not a real GUID). + + + Attached to events which are raised using the RaiseEvent function. + + + This value indicates that no filtering on keyword is performed when the event is published. + + + Attached to all response time events. + + + Attached to all Service Quality Mechanism (SQM) events. + + + Attached to all Windows Diagnostic Infrastructure (WDI) context events. + + + Attached to all Windows Diagnostic Infrastructure (WDI) diagnostic events. + + + Defines the standard event levels that are used in the Event Log service. The level defines the severity of the event. Custom event levels can be defined beyond these standard levels. For more information about levels, see . + + + This level corresponds to critical errors, which is a serious error that has caused a major failure. + + + This level corresponds to normal errors that signify a problem. + + + This level corresponds to informational events or messages that are not errors. These events can help trace the progress or state of an application. + + + This value indicates that not filtering on the level is done during the event publishing. + + + This level corresponds to lengthy events or messages. + + + This level corresponds to warning events. For example, an event that gets published because a disk is nearing full capacity is a warning event. + + + Defines the standard opcodes that are attached to events by the event provider. For more information about opcodes, see . + + + An event with this opcode is a trace collection start event. + + + An event with this opcode is a trace collection stop event. + + + An event with this opcode is an extension event. + + + An event with this opcode is an informational event. + + + An event with this opcode is published when one activity in an application receives data. + + + An event with this opcode is published after an activity in an application replies to an event. + + + An event with this opcode is published after an activity in an application resumes from a suspended state. The event should follow an event with the Suspend opcode. + + + An event with this opcode is published when one activity in an application transfers data or system resources to another activity. + + + An event with this opcode is published when an application starts a new transaction or activity. This can be embedded into another transaction or activity when multiple events with the Start opcode follow each other without an event with a Stop opcode. + + + An event with this opcode is published when an activity or a transaction in an application ends. The event corresponds to the last unpaired event with a Start opcode. + + + An event with this opcode is published when an activity in an application is suspended. + + + Defines the standard tasks that are attached to events by the event provider. For more information about tasks, see . + + + No task is used to identify a portion of an application that publishes an event. + + + Represents language-neutral information for an event log entry. + + + Initializes a new instance of the class using the specified resource identifiers for the localized message and category text of the event entry. + A resource identifier that corresponds to a string defined in the message resource file of the event source. + A resource identifier that corresponds to a string defined in the category resource file of the event source, or zero to specify no category for the event. + The parameter is a negative value or a value larger than . +-or- +The parameter is a negative value or a value larger than . + + + Initializes a new instance of the class using the specified resource identifiers for the localized message and category text of the event entry and the specified event log entry type. + A resource identifier that corresponds to a string defined in the message resource file of the event source. + A resource identifier that corresponds to a string defined in the category resource file of the event source, or zero to specify no category for the event. + An value that indicates the event type. + + is not a valid value. + + is a negative value or a value larger than . +-or- + is a negative value or a value larger than . + + + Gets or sets the resource identifier that specifies the application-defined category of the event entry. + A numeric category value or resource identifier that corresponds to a string defined in the category resource file of the event source. The default is zero, which signifies that no category will be displayed for the event entry. + The property is set to a negative value or to a value larger than . + + + Gets or sets the event type of the event log entry. + An value that indicates the event entry type. The default value is . + The property is not set to a valid value. + + + Gets or sets the resource identifier that designates the message text of the event entry. + A resource identifier that corresponds to a string defined in the message resource file of the event source. + The property is set to a negative value or to a value larger than . + + + Provides interaction with Windows event logs. + + + Initializes a new instance of the class. Does not associate the instance with any log. + + + Initializes a new instance of the class. Associates the instance with a log on the local computer. + The name of the log on the local computer. + The log name is . + The log name is invalid. + + + Initializes a new instance of the class. Associates the instance with a log on the specified computer. + The name of the log on the specified computer. + The computer on which the log exists. + The log name is . + The log name is invalid. +-or- +The computer name is invalid. + + + Initializes a new instance of the class. Associates the instance with a log on the specified computer and creates or assigns the specified source to the . + The name of the log on the specified computer + The computer on which the log exists. + The source of event log entries. + The log name is . + The log name is invalid. +-or- +The computer name is invalid. + + + Begins the initialization of an used on a form or used by another component. The initialization occurs at runtime. + + is already initialized. + + + Removes all entries from the event log. + The event log was not cleared successfully. +-or- +The log cannot be opened. A Windows error code is not available. + A value is not specified for the property. Make sure the log name is not an empty string. + The log does not exist. + + + Closes the event log and releases read and write handles. + The event log's read handle or write handle was not released successfully. + + + Establishes a valid event source for writing localized event messages, using the specified configuration properties for the event source and the corresponding event log. + The configuration properties for the event source and its target event log. + The computer name specified in is not valid. +-or- +The source name specified in is . +-or- +The log name specified in is not valid. Event log names must consist of printable characters and cannot include the characters '*', '?', or '\'. +-or- +The log name specified in is not valid for user log creation. The Event log names AppEvent, SysEvent, and SecEvent are reserved for system use. +-or- +The log name matches an existing event source name. +-or- +The source name specified in results in a registry key path longer than 254 characters. +-or- +The first 8 characters of the log name specified in are not unique. +-or- +The source name specified in is already registered. +-or- +The source name specified in matches an existing event log name. + The registry key for the event log could not be opened. + + is . + + + Establishes the specified source name as a valid event source for writing entries to a log on the local computer. This method can also create a new custom log on the local computer. + The source name by which the application is registered on the local computer. + The name of the log the source's entries are written to. Possible values include Application, System, or a custom event log. + + is an empty string ("") or . +-or- + is not a valid event log name. Event log names must consist of printable characters, and cannot include the characters '*', '?', or '\'. +-or- + is not valid for user log creation. The event log names AppEvent, SysEvent, and SecEvent are reserved for system use. +-or- +The log name matches an existing event source name. +-or- +The source name results in a registry key path longer than 254 characters. +-or- +The first 8 characters of match the first 8 characters of an existing event log name. +-or- +The source cannot be registered because it already exists on the local computer. +-or- +The source name matches an existing event log name. + The registry key for the event log could not be opened on the local computer. + + + Establishes the specified source name as a valid event source for writing entries to a log on the specified computer. This method can also be used to create a new custom log on the specified computer. + The source by which the application is registered on the specified computer. + The name of the log the source's entries are written to. Possible values include Application, System, or a custom event log. If you do not specify a value, defaults to Application. + The name of the computer to register this event source with, or "." for the local computer. + The is not a valid computer name. +-or- + is an empty string ("") or . +-or- + is not a valid event log name. Event log names must consist of printable characters, and cannot include the characters '*', '?', or '\'. +-or- + is not valid for user log creation. The event log names AppEvent, SysEvent, and SecEvent are reserved for system use. +-or- +The log name matches an existing event source name. +-or- +The source name results in a registry key path longer than 254 characters. +-or- +The first 8 characters of match the first 8 characters of an existing event log name on the specified computer. +-or- +The source cannot be registered because it already exists on the specified computer. +-or- +The source name matches an existing event source name. + The registry key for the event log could not be opened on the specified computer. + + + Removes an event log from the local computer. + The name of the log to delete. Possible values include: Application, Security, System, and any custom event logs on the computer. + + is an empty string ("") or . + The registry key for the event log could not be opened on the local computer. +-or- +The log does not exist on the local computer. + The event log was not cleared successfully. +-or- +The log cannot be opened. A Windows error code is not available. + + + Removes an event log from the specified computer. + The name of the log to delete. Possible values include: Application, Security, System, and any custom event logs on the specified computer. + The name of the computer to delete the log from, or "." for the local computer. + + is an empty string ("") or . +-or- + is not a valid computer name. + The registry key for the event log could not be opened on the specified computer. +-or- +The log does not exist on the specified computer. + The event log was not cleared successfully. +-or- +The log cannot be opened. A Windows error code is not available. + + + Removes the event source registration from the event log of the local computer. + The name by which the application is registered in the event log system. + The parameter does not exist in the registry of the local computer. +-or- +You do not have write access on the registry key for the event log. + + + Removes the application's event source registration from the specified computer. + The name by which the application is registered in the event log system. + The name of the computer to remove the registration from, or "." for the local computer. + The parameter is invalid. +-or- +The parameter does not exist in the registry of the specified computer. +-or- +You do not have write access on the registry key for the event log. + + cannot be deleted because in the registry, the parent registry key for does not contain a subkey with the same name. + + + Releases the unmanaged resources used by the , and optionally releases the managed resources. + + to release both managed and unmanaged resources; to release only unmanaged resources. + + + Gets or sets a value indicating whether the receives event notifications. + + if the receives notification when an entry is written to the log; otherwise, . + The event log is on a remote computer. + + + Ends the initialization of an used on a form or by another component. The initialization occurs at runtime. + + + Gets the contents of the event log. + An holding the entries in the event log. Each entry is associated with an instance of the class. + + + Occurs when an entry is written to an event log on the local computer. + + + Determines whether the log exists on the local computer. + The name of the log to search for. Possible values include: Application, Security, System, other application-specific logs (such as those associated with Active Directory), or any custom log on the computer. + + if the log exists on the local computer; otherwise, . + The logName is or the value is empty. + + + Determines whether the log exists on the specified computer. + The log for which to search. Possible values include: Application, Security, System, other application-specific logs (such as those associated with Active Directory), or any custom log on the computer. + The name of the computer on which to search for the log, or "." for the local computer. + + if the log exists on the specified computer; otherwise, . + The parameter is an invalid format. Make sure you have used proper syntax for the computer on which you are searching. +-or- +The is or the value is empty. + + + Searches for all event logs on the local computer and creates an array of objects that contain the list. + An array of type that represents the logs on the local computer. + You do not have read access to the registry. +-or- +There is no event log service on the computer. + + + Searches for all event logs on the given computer and creates an array of objects that contain the list. + The computer on which to search for event logs. + An array of type that represents the logs on the given computer. + The parameter is an invalid computer name. + You do not have read access to the registry. +-or- +There is no event log service on the computer. + + + Gets or sets the name of the log to read from or write to. + The name of the log. This can be Application, System, Security, or a custom log name. The default is an empty string (""). + + + Gets the event log's friendly name. + A name that represents the event log in the system's event viewer. + The specified does not exist in the registry for this computer. + + + Gets the name of the log to which the specified source is registered. + The name of the event source. + The name of the computer on which to look, or "." for the local computer. + The name of the log associated with the specified source in the registry. + + + Gets or sets the name of the computer on which to read or write events. + The name of the server on which the event log resides. The default is the local computer ("."). + The computer name is invalid. + + + Gets or sets the maximum event log size in kilobytes. + The maximum event log size in kilobytes. The default is 512, indicating a maximum file size of 512 kilobytes. + The specified value is less than 64, or greater than 4194240, or not an even multiple of 64. + The value is not a valid log name. +-or- +The registry key for the event log could not be opened on the target computer. + + + Gets the number of days to retain entries in the event log. + The number of days that entries in the event log are retained. The default value is 7. + + + Changes the configured behavior for writing new entries when the event log reaches its maximum file size. + The overflow behavior for writing new entries to the event log. + The minimum number of days each event log entry is retained. This parameter is used only if is set to . + + is not a valid value. + + is less than one, or larger than 365. + The value is not a valid log name. +-or- +The registry key for the event log could not be opened on the target computer. + + + Gets the configured behavior for storing new entries when the event log reaches its maximum log file size. + The value that specifies the configured behavior for storing new entries when the event log reaches its maximum log size. The default is . + + + Specifies the localized name of the event log, which is displayed in the server Event Viewer. + The fully specified path to a localized resource file. + The resource identifier that indexes a localized string within the resource file. + The value is not a valid log name. +-or- +The registry key for the event log could not be opened on the target computer. + + is . + + + Gets or sets the source name to register and use when writing to the event log. + The name registered with the event log as a source of entries. The default is an empty string (""). + The source name results in a registry key path longer than 254 characters. + + + Determines whether an event source is registered on the local computer. + The name of the event source. + + if the event source is registered on the local computer; otherwise, . + + was not found, but some or all of the event logs could not be searched. + + + Determines whether an event source is registered on a specified computer. + The name of the event source. + The name the computer on which to look, or "." for the local computer. + + if the event source is registered on the given computer; otherwise, . + + is an invalid computer name. + + was not found, but some or all of the event logs could not be searched. + + + Gets or sets the object used to marshal the event handler calls issued as a result of an entry written event. + The used to marshal event-handler calls issued as a result of an event on the event log. + + + Writes an information type entry, with the given message text, to the event log. + The string to write to the event log. + The property of the has not been set. +-or- +The method attempted to register a new event source, but the computer name in is not valid. +-or- +The source is already registered for a different event log. +-or- +The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). +-or- +The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + + + Writes an error, warning, information, success audit, or failure audit entry with the given message text to the event log. + The string to write to the event log. + One of the values. + The property of the has not been set. +-or- +The method attempted to register a new event source, but the computer name in is not valid. +-or- +The source is already registered for a different event log. +-or- +The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). +-or- +The source name results in a registry key path longer than 254 characters. + + is not a valid . + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + + + Writes an entry with the given message text and application-defined event identifier to the event log. + The string to write to the event log. + One of the values. + The application-specific identifier for the event. + The property of the has not been set. +-or- +The method attempted to register a new event source, but the computer name in is not valid. +-or- +The source is already registered for a different event log. +-or- + is less than zero or greater than . +-or- +The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). +-or- +The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + + is not a valid . + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + + + Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log. + The string to write to the event log. + One of the values. + The application-specific identifier for the event. + The application-specific subcategory associated with the message. + The property of the has not been set. +-or- +The method attempted to register a new event source, but the computer name in is not valid. +-or- +The source is already registered for a different event log. +-or- + is less than zero or greater than . +-or- +The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). +-or- +The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + + is not a valid . + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + + + Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log, and appends binary data to the message. + The string to write to the event log. + One of the values. + The application-specific identifier for the event. + The application-specific subcategory associated with the message. + An array of bytes that holds the binary data associated with the entry. + The property of the has not been set. +-or- +The method attempted to register a new event source, but the computer name in is not valid. +-or- +The source is already registered for a different event log. +-or- + is less than zero or greater than . +-or- +The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). +-or- +The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + + is not a valid . + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + + + Writes an information type entry with the given message text to the event log, using the specified registered event source. + The source by which the application is registered on the specified computer. + The string to write to the event log. + The value is an empty string (""). +-or- +The value is . +-or- +The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). +-or- +The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + + + Writes an error, warning, information, success audit, or failure audit entry with the given message text to the event log, using the specified registered event source. + The source by which the application is registered on the specified computer. + The string to write to the event log. + One of the values. + The value is an empty string (""). +-or- +The value is . +-or- +The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). +-or- +The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + + is not a valid . + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + + + Writes an entry with the given message text and application-defined event identifier to the event log, using the specified registered event source. + The source by which the application is registered on the specified computer. + The string to write to the event log. + One of the values. + The application-specific identifier for the event. + The value is an empty string (""). +-or- +The value is . +-or- + is less than zero or greater than . +-or- +The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). +-or- +The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + + is not a valid . + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + + + Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log, using the specified registered event source. The can be used by the Event Viewer to filter events in the log. + The source by which the application is registered on the specified computer. + The string to write to the event log. + One of the values. + The application-specific identifier for the event. + The application-specific subcategory associated with the message. + The value is an empty string (""). +-or- +The value is . +-or- + is less than zero or greater than . +-or- +The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). +-or- +The source name results in a registry key path longer than 254 characters. + The registry key for the event log could not be opened. + + is not a valid . + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + + + Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log (using the specified registered event source) and appends binary data to the message. + The source by which the application is registered on the specified computer. + The string to write to the event log. + One of the values. + The application-specific identifier for the event. + The application-specific subcategory associated with the message. + An array of bytes that holds the binary data associated with the entry. + The value is an empty string (""). +-or- +The value is . +-or- + is less than zero or greater than . +-or- +The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista). +-or- +The source name results in a registry key path longer than 254 characters. + + is not a valid . + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + + + Writes an event log entry with the given event data, message replacement strings, and associated binary data. + An instance that represents a localized event log entry. + An array of bytes that holds the binary data associated with the entry. + An array of strings to merge into the message text of the event log entry. + The property of the has not been set. +-or- +The method attempted to register a new event source, but the computer name in is not valid. +-or- +The source is already registered for a different event log. +-or- + is less than zero or greater than . +-or- + has more than 256 elements. +-or- +One of the elements is longer than 32766 bytes. +-or- +The source name results in a registry key path longer than 254 characters. + + is . + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + + + Writes a localized entry to the event log. + An instance that represents a localized event log entry. + An array of strings to merge into the message text of the event log entry. + The property of the has not been set. +-or- +The method attempted to register a new event source, but the computer name in is not valid. +-or- +The source is already registered for a different event log. +-or- + is less than zero or greater than . +-or- + has more than 256 elements. +-or- +One of the elements is longer than 32766 bytes. +-or- +The source name results in a registry key path longer than 254 characters. + + is . + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + + + Writes an event log entry with the given event data, message replacement strings, and associated binary data, and using the specified registered event source. + The name of the event source registered for the application on the specified computer. + An instance that represents a localized event log entry. + An array of bytes that holds the binary data associated with the entry. + An array of strings to merge into the message text of the event log entry. + The value is an empty string (""). +-or- +The value is . +-or- + is less than zero or greater than . +-or- + has more than 256 elements. +-or- +One of the elements is longer than 32766 bytes. +-or- +The source name results in a registry key path longer than 254 characters. + + is . + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + + + Writes an event log entry with the given event data and message replacement strings, using the specified registered event source. + The name of the event source registered for the application on the specified computer. + An instance that represents a localized event log entry. + An array of strings to merge into the message text of the event log entry. + The value is an empty string (""). +-or- +The value is . +-or- + is less than zero or greater than . +-or- + has more than 256 elements. +-or- +One of the elements is longer than 32766 bytes. +-or- +The source name results in a registry key path longer than 254 characters. + + is . + The registry key for the event log could not be opened. + The operating system reported an error when writing the event entry to the event log. A Windows error code is not available. + + + Encapsulates a single record in the event log. This class cannot be inherited. + + + Gets the text associated with the property for this entry. + The application-specific category text. + The space could not be allocated for one of the insertion strings associated with the category. + + + Gets the category number of the event log entry. + The application-specific category number for this entry. + + + Gets the binary data associated with the entry. + An array of bytes that holds the binary data associated with the entry. + + + Gets the event type of this entry. + The event type that is associated with the entry in the event log. + + + Performs a comparison between two event log entries. + The to compare. + + if the objects are identical; otherwise, . + + + Gets the application-specific event identifier for the current event entry. + The application-specific identifier for the event message. + + + Gets the index of this entry in the event log. + The index of this entry in the event log. + + + Gets the resource identifier that designates the message text of the event entry. + A resource identifier that corresponds to a string definition in the message resource file of the event source. + + + Gets the name of the computer on which this entry was generated. + The name of the computer that contains the event log. + + + Gets the localized message associated with this event entry. + The formatted, localized text for the message. This includes associated replacement strings. + The space could not be allocated for one of the insertion strings associated with the message. + + + Gets the replacement strings associated with the event log entry. + An array that holds the replacement strings stored in the event entry. + + + Gets the name of the application that generated this event. + The name registered with the event log as the source of this event. + + + Populates a with the data needed to serialize the target object. + The to populate with data. + The destination (see ) for this serialization. + + + Gets the local time at which this event was generated. + The local time at which this event was generated. + + + Gets the local time at which this event was written to the log. + The local time at which this event was written to the log. + + + Gets the name of the user who is responsible for this event. + The security identifier (SID) that uniquely identifies a user or group. + Account information could not be obtained for the user's SID. + + + Defines size and enumerators for a collection of instances. + + + Copies the elements of the to an array of instances, starting at a particular array index. + The one-dimensional array of instances that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in the array at which copying begins. + + + Gets the number of entries in the event log (that is, the number of elements in the collection). + The number of entries currently in the event log. + + + Supports a simple iteration over the object. + An object that can be used to iterate over the collection. + + + Gets an entry in the event log, based on an index that starts at 0 (zero). + The zero-based index that is associated with the event log entry. + The event log entry at the location that is specified by the parameter. + + + Copies the elements of the collection to an , starting at a particular index. + The one-dimensional that is the destination of the elements that are copied from the collection. The must have zero-based indexing. + The zero-based index in at which copying begins. + + + Gets a value that indicates whether access to the is synchronized (thread-safe). + + if access to the collection is not synchronized (thread-safe). + + + Gets an object that can be used to synchronize access to the object. + An object that can be used to synchronize access to the collection. + + + Specifies the event type of an event log entry. + + + An error event. This indicates a significant problem the user should know about; usually a loss of functionality or data. + + + A failure audit event. This indicates a security event that occurs when an audited access attempt fails; for example, a failed attempt to open a file. + + + An information event. This indicates a significant, successful operation. + + + A success audit event. This indicates a security event that occurs when an audited access attempt is successful; for example, logging on successfully. + + + A warning event. This indicates a problem that is not immediately significant, but that may signify conditions that could cause future problems. + + + Provides a simple listener that directs tracing or debugging output to an . + + + Initializes a new instance of the class without a trace listener. + + + Initializes a new instance of the class using the specified event log. + The event log to write to. + + + Initializes a new instance of the class using the specified source. + The name of an existing event log source. + + + Closes the event log so that it no longer receives tracing or debugging output. + + + Gets or sets the event log to write to. + The event log to write to. + + + Gets or sets the name of this . + The name of this trace listener. + + + Writes trace information, a data object, and event information to the event log. + An object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output; typically the name of the application that generated the trace event. + One of the enumeration values that specifies the type of event that has caused the trace. + A numeric identifier for the event. The combination of and uniquely identifies an event. + A data object to write to the output file or stream. + + is not specified. +-or- +The log entry string exceeds 32,766 characters. + + + Writes trace information, an array of data objects, and event information to the event log. + An object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output; typically the name of the application that generated the trace event. + One of the enumeration values that specifies the type of event that has caused the trace. + A numeric identifier for the event. The combination of and uniquely identifies an event. + An array of data objects. + + is not specified. +-or- +The log entry string exceeds 32,766 characters. + + + Writes trace information, a message, and event information to the event log. + An object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output; typically the name of the application that generated the trace event. + One of the enumeration values that specifies the type of event that has caused the trace. + A numeric identifier for the event. The combination of and uniquely identifies an event. + The trace message. + + is not specified. +-or- +The log entry string exceeds 32,766 characters. + + + Writes trace information, a formatted array of objects, and event information to the event log. + An object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output; typically the name of the application that generated the trace event. + One of the enumeration values that specifies the type of event that has caused the trace. + A numeric identifier for the event. The combination of and uniquely identifies an event. + A format string that contains zero or more format items that correspond to objects in the array. + An array containing zero or more objects to format. + + is not specified. +-or- +The log entry string exceeds 32,766 characters. + + + Writes a message to the event log for this instance. + The message to write. + + exceeds 32,766 characters. + + + Writes a message to the event log for this instance. + The message to write. + + exceeds 32,766 characters. + + + Represents the configuration settings used to create an event log source on the local computer or a remote computer. + + + Initializes a new instance of the class with a specified event source and event log name. + The name to register with the event log as a source of entries. + The name of the log to which entries from the source are written. + + + Gets or sets the number of categories in the category resource file. + The number of categories in the category resource file. The default value is zero. + The property is set to a negative value or to a value larger than . + + + Gets or sets the path of the resource file that contains category strings for the source. + The path of the category resource file. The default is an empty string (""). + + + Gets or sets the name of the event log to which the source writes entries. + The name of the event log. This can be Application, System, or a custom log name. The default value is "Application." + + + Gets or sets the name of the computer on which to register the event source. + The name of the system on which to register the event source. The default is the local computer ("."). + The computer name is invalid. + + + Gets or sets the path of the message resource file that contains message formatting strings for the source. + The path of the message resource file. The default is an empty string (""). + + + Gets or sets the path of the resource file that contains message parameter strings for the source. + The path of the parameter resource file. The default is an empty string (""). + + + Gets or sets the name to register with the event log as an event source. + The name to register with the event log as a source of entries. The default is an empty string (""). + + + Specifies how to handle entries in an event log that has reached its maximum file size. + + + Indicates that existing entries are retained when the event log is full and new entries are discarded. + + + Indicates that each new entry overwrites the oldest entry when the event log is full. + + + Indicates that new events overwrite events older than specified by the property value when the event log is full. New events are discarded if the event log is full and there are no events older than specified by the property value. + + \ No newline at end of file diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.xml.meta b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.xml.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.xml.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.xml.meta diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/useSharedDesignerContext.txt b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/useSharedDesignerContext.txt similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/useSharedDesignerContext.txt rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/useSharedDesignerContext.txt diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/useSharedDesignerContext.txt.meta b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/useSharedDesignerContext.txt.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/useSharedDesignerContext.txt.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/useSharedDesignerContext.txt.meta diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/version.txt b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/version.txt similarity index 97% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/version.txt rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/version.txt index 0abba6e8..f5d54e72 100644 --- a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/version.txt +++ b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/version.txt @@ -1 +1 @@ -0f7f38c4fd323b26da10cce95f857f77f0f09b48 +0f7f38c4fd323b26da10cce95f857f77f0f09b48 diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/version.txt.meta b/Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/version.txt.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/version.txt.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Diagnostics.EventLog.4.7.0/version.txt.meta diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0.meta b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0.meta diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/LICENSE.TXT b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/LICENSE.TXT similarity index 97% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/LICENSE.TXT rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/LICENSE.TXT index fa3121df..984713a4 100644 --- a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/LICENSE.TXT +++ b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/LICENSE.TXT @@ -1,23 +1,23 @@ -The MIT License (MIT) - -Copyright (c) .NET Foundation and Contributors - -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/LICENSE.TXT.meta b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/LICENSE.TXT.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/LICENSE.TXT.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/LICENSE.TXT.meta diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/System.Security.Principal.Windows.nuspec b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/System.Security.Principal.Windows.nuspec similarity index 98% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/System.Security.Principal.Windows.nuspec rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/System.Security.Principal.Windows.nuspec index 501dd5ce..fe9db1e5 100644 --- a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/System.Security.Principal.Windows.nuspec +++ b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/System.Security.Principal.Windows.nuspec @@ -1,66 +1,66 @@ - - - - System.Security.Principal.Windows - 4.7.0 - System.Security.Principal.Windows - Microsoft - microsoft,dotnetframework - false - MIT - https://licenses.nuget.org/MIT - https://github.com/dotnet/corefx - http://go.microsoft.com/fwlink/?LinkID=288859 - Provides classes for retrieving the current Windows user and for interacting with Windows users and groups. - -Commonly Used Types: -System.Security.Principal.WindowsIdentity -System.Security.Principal.SecurityIdentifier -System.Security.Principal.NTAccount -System.Security.Principal.WindowsPrincipal -System.Security.Principal.IdentityReference -System.Security.Principal.IdentityNotMappedException -System.Security.Principal.WindowsBuiltInRole -System.Security.Principal.WellKnownSidType - -When using NuGet 3.x this package requires at least version 3.4. - https://go.microsoft.com/fwlink/?LinkID=799421 - © Microsoft Corporation. All rights reserved. - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + System.Security.Principal.Windows + 4.7.0 + System.Security.Principal.Windows + Microsoft + microsoft,dotnetframework + false + MIT + https://licenses.nuget.org/MIT + https://github.com/dotnet/corefx + http://go.microsoft.com/fwlink/?LinkID=288859 + Provides classes for retrieving the current Windows user and for interacting with Windows users and groups. + +Commonly Used Types: +System.Security.Principal.WindowsIdentity +System.Security.Principal.SecurityIdentifier +System.Security.Principal.NTAccount +System.Security.Principal.WindowsPrincipal +System.Security.Principal.IdentityReference +System.Security.Principal.IdentityNotMappedException +System.Security.Principal.WindowsBuiltInRole +System.Security.Principal.WellKnownSidType + +When using NuGet 3.x this package requires at least version 3.4. + https://go.microsoft.com/fwlink/?LinkID=799421 + © Microsoft Corporation. All rights reserved. + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/System.Security.Principal.Windows.nuspec.meta b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/System.Security.Principal.Windows.nuspec.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/System.Security.Principal.Windows.nuspec.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/System.Security.Principal.Windows.nuspec.meta diff --git a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/THIRD-PARTY-NOTICES.TXT b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/THIRD-PARTY-NOTICES.TXT similarity index 98% rename from Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/THIRD-PARTY-NOTICES.TXT rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/THIRD-PARTY-NOTICES.TXT index 3a236152..77a243ef 100644 --- a/Assets/PlayroomKit/dependencies/System.Diagnostics.EventLog.4.7.0/THIRD-PARTY-NOTICES.TXT +++ b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/THIRD-PARTY-NOTICES.TXT @@ -1,375 +1,375 @@ -.NET Core uses third-party libraries or other resources that may be -distributed under licenses different than the .NET Core software. - -In the event that we accidentally failed to list a required notice, please -bring it to our attention. Post an issue or email us: - - dotnet@microsoft.com - -The attached notices are provided for information only. - -License notice for ASP.NET -------------------------------- - -Copyright (c) .NET Foundation. All rights reserved. -Licensed under the Apache License, Version 2.0. - -Available at -https://github.com/aspnet/AspNetCore/blob/master/LICENSE.txt - -License notice for Slicing-by-8 -------------------------------- - -http://sourceforge.net/projects/slicing-by-8/ - -Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved - - -This software program is licensed subject to the BSD License, available at -http://www.opensource.org/licenses/bsd-license.html. - - -License notice for Unicode data -------------------------------- - -http://www.unicode.org/copyright.html#License - -Copyright © 1991-2017 Unicode, Inc. All rights reserved. -Distributed under the Terms of Use in http://www.unicode.org/copyright.html. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Unicode data files and any associated documentation -(the "Data Files") or Unicode software and any associated documentation -(the "Software") to deal in the Data Files or Software -without restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, and/or sell copies of -the Data Files or Software, and to permit persons to whom the Data Files -or Software are furnished to do so, provided that either -(a) this copyright and permission notice appear with all copies -of the Data Files or Software, or -(b) this copyright and permission notice appear in associated -Documentation. - -THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT OF THIRD PARTY RIGHTS. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS -NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL -DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THE DATA FILES OR SOFTWARE. - -Except as contained in this notice, the name of a copyright holder -shall not be used in advertising or otherwise to promote the sale, -use or other dealings in these Data Files or Software without prior -written authorization of the copyright holder. - -License notice for Zlib ------------------------ - -https://github.com/madler/zlib -http://zlib.net/zlib_license.html - -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.11, January 15th, 2017 - - Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - -*/ - -License notice for Mono -------------------------------- - -http://www.mono-project.com/docs/about-mono/ - -Copyright (c) .NET Foundation Contributors - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the Software), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -License notice for International Organization for Standardization ------------------------------------------------------------------ - -Portions (C) International Organization for Standardization 1986: - Permission to copy in any form is granted for use with - conforming SGML systems and applications as defined in - ISO 8879, provided this notice is included in all copies. - -License notice for Intel ------------------------- - -"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -License notice for Xamarin and Novell -------------------------------------- - -Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -Copyright (c) 2011 Novell, Inc (http://www.novell.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -Third party notice for W3C --------------------------- - -"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE -Status: This license takes effect 13 May, 2015. -This work is being provided by the copyright holders under the following license. -License -By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. -Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: -The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. -Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. -Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." -Disclaimers -THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. -COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. -The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." - -License notice for Bit Twiddling Hacks --------------------------------------- - -Bit Twiddling Hacks - -By Sean Eron Anderson -seander@cs.stanford.edu - -Individually, the code snippets here are in the public domain (unless otherwise -noted) — feel free to use them however you please. The aggregate collection and -descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are -distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and -without even the implied warranty of merchantability or fitness for a particular -purpose. - -License notice for Brotli --------------------------------------- - -Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -compress_fragment.c: -Copyright (c) 2011, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -decode_fuzzer.c: -Copyright (c) 2015 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." - -License notice for Json.NET -------------------------------- - -https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md - -The MIT License (MIT) - -Copyright (c) 2007 James Newton-King - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -License notice for vectorized base64 encoding / decoding --------------------------------------------------------- - -Copyright (c) 2005-2007, Nick Galbreath -Copyright (c) 2013-2017, Alfred Klomp -Copyright (c) 2015-2017, Wojciech Mula -Copyright (c) 2016-2017, Matthieu Darbois -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - -- Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.NET Core uses third-party libraries or other resources that may be +distributed under licenses different than the .NET Core software. + +In the event that we accidentally failed to list a required notice, please +bring it to our attention. Post an issue or email us: + + dotnet@microsoft.com + +The attached notices are provided for information only. + +License notice for ASP.NET +------------------------------- + +Copyright (c) .NET Foundation. All rights reserved. +Licensed under the Apache License, Version 2.0. + +Available at +https://github.com/aspnet/AspNetCore/blob/master/LICENSE.txt + +License notice for Slicing-by-8 +------------------------------- + +http://sourceforge.net/projects/slicing-by-8/ + +Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + + +This software program is licensed subject to the BSD License, available at +http://www.opensource.org/licenses/bsd-license.html. + + +License notice for Unicode data +------------------------------- + +http://www.unicode.org/copyright.html#License + +Copyright © 1991-2017 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +License notice for Zlib +----------------------- + +https://github.com/madler/zlib +http://zlib.net/zlib_license.html + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +*/ + +License notice for Mono +------------------------------- + +http://www.mono-project.com/docs/about-mono/ + +Copyright (c) .NET Foundation Contributors + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for International Organization for Standardization +----------------------------------------------------------------- + +Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +License notice for Intel +------------------------ + +"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xamarin and Novell +------------------------------------- + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Third party notice for W3C +-------------------------- + +"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE +Status: This license takes effect 13 May, 2015. +This work is being provided by the copyright holders under the following license. +License +By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. +Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: +The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. +Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. +Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." +Disclaimers +THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." + +License notice for Bit Twiddling Hacks +-------------------------------------- + +Bit Twiddling Hacks + +By Sean Eron Anderson +seander@cs.stanford.edu + +Individually, the code snippets here are in the public domain (unless otherwise +noted) — feel free to use them however you please. The aggregate collection and +descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are +distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and +without even the implied warranty of merchantability or fitness for a particular +purpose. + +License notice for Brotli +-------------------------------------- + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +compress_fragment.c: +Copyright (c) 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +decode_fuzzer.c: +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + +License notice for Json.NET +------------------------------- + +https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md + +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized base64 encoding / decoding +-------------------------------------------------------- + +Copyright (c) 2005-2007, Nick Galbreath +Copyright (c) 2013-2017, Alfred Klomp +Copyright (c) 2015-2017, Wojciech Mula +Copyright (c) 2016-2017, Matthieu Darbois +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/THIRD-PARTY-NOTICES.TXT.meta b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/THIRD-PARTY-NOTICES.TXT.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/THIRD-PARTY-NOTICES.TXT.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/THIRD-PARTY-NOTICES.TXT.meta diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/lib.meta b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/lib.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/lib.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/lib.meta diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0.meta b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0.meta diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.dll b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.dll similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.dll rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.dll diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.dll.meta b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.dll.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.dll.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.dll.meta diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.xml b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.xml similarity index 98% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.xml rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.xml index 305fb3ac..15ec771c 100644 --- a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.xml +++ b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.xml @@ -1,1029 +1,1029 @@ - - - - System.Security.Principal.Windows - - - - Provides a safe handle to a Windows thread or process access token. For more information, see Access Tokens. - - - Initializes a new instance of the class. - An object that represents the pre-existing handle to use. Using returns an invalid handle. - - - Returns an invalid handle by instantiating a object with . - Returns a object. - - - Gets a value that indicates whether the handle is invalid. - - if the handle is not valid; otherwise, . - - - Represents an exception for a principal whose identity could not be mapped to a known identity. - - - Initializes a new instance of the class. - - - Initializes a new instance of the class by using the specified error message. - The error message that explains the reason for the exception. - - - Initializes a new instance of the class by using the specified error message and inner exception. - The error message that explains the reason for the exception. - The exception that is the cause of the current exception. If is not null, the current exception is raised in a block that handles the inner exception. - - - Gets serialization information with the data needed to create an instance of this object. - The object that holds the serialized object data about the exception being thrown. - The object that contains contextual information about the source or destination. - - - Represents the collection of unmapped identities for an exception. - The collection of unmapped identities. - - - Represents an identity and is the base class for the and classes. This class does not provide a public constructor, and therefore cannot be inherited. - - - Returns a value that indicates whether the specified object equals this instance of the class. - An object to compare with this instance, or a null reference. - - if is an object with the same underlying type and value as this instance; otherwise, . - - - Serves as a hash function for . is suitable for use in hashing algorithms and data structures like a hash table. - The hash code for this object. - - - Returns a value that indicates whether the specified type is a valid translation type for the class. - The type being queried for validity to serve as a conversion from . The following target types are valid: - - - if is a valid translation type for the class; otherwise, . - - - Compares two objects to determine whether they are equal. They are considered equal if they have the same canonical name representation as the one returned by the property or if they are both . - The left operand to use for the equality comparison. This parameter can be . - The right operand to use for the equality comparison. This parameter can be . - - if and are equal; otherwise, . - - - Compares two objects to determine whether they are not equal. They are considered not equal if they have different canonical name representations than the one returned by the property or if one of the objects is and the other is not. - The left operand to use for the inequality comparison. This parameter can be . - The right operand to use for the inequality comparison. This parameter can be . - - if and are not equal; otherwise, . - - - Returns the string representation of the identity represented by the object. - The identity in string format. - - - Translates the account name represented by the object into another -derived type. - The target type for the conversion from . - The converted identity. - - - Gets the string value of the identity represented by the object. - The string value of the identity represented by the object. - - - Represents a collection of objects and provides a means of converting sets of -derived objects to -derived types. - - - Initializes a new instance of the class with zero items in the collection. - - - Initializes a new instance of the class by using the specified initial size. - The initial number of items in the collection. The value of is a hint only; it is not necessarily the maximum number of items created. - - - Adds an object to the collection. - The object to add to the collection. - - is . - - - Clears all objects from the collection. - - - Indicates whether the collection contains the specified object. - The object to check for. - - if the collection contains the specified object. - - is . - - - Copies the collection to an array, starting at the specified index. - An array object to which the collection is to be copied. - The zero-based index in where the collection is to be copied. - - - Gets the number of items in the collection. - The number of objects in the collection. - - - Gets an enumerator that can be used to iterate through the collection. - An enumerator for the collection. - - - Sets or gets the node at the specified index of the collection. - The zero-based index in the collection. - The at the specified index in the collection. If is greater than or equal to the number of nodes in the collection, the return value is . - - - Removes the specified object from the collection. - The object to remove. - - if the specified object was removed from the collection. - - is . - - - - Gets an enumerator that can be used to iterate through the collection. - An enumerator for the collection. - - - Converts the objects in the collection to the specified type. Calling this method is the same as calling with the second parameter set to , which means that exceptions will not be thrown for items that fail conversion. - The type to which items in the collection are being converted. - A collection that represents the converted contents of the original collection. - - - Converts the objects in the collection to the specified type and uses the specified fault tolerance to handle or ignore errors associated with a type not having a conversion mapping. - The type to which items in the collection are being converted. - A Boolean value that determines how conversion errors are handled. -If is , conversion errors due to a mapping not being found for the translation result in a failed conversion and exceptions being thrown. -If is , types that failed to convert due to a mapping not being found for the translation are copied without being converted into the collection being returned. - A collection that represents the converted contents of the original collection. - - - Represents a user or group account. - - - Initializes a new instance of the class by using the specified name. - The name used to create the object. This parameter cannot be or an empty string. - - is . - - is an empty string. --or- - is too long. - - - Initializes a new instance of the class by using the specified domain name and account name. - The name of the domain. This parameter can be or an empty string. Domain names that are null values are treated like an empty string. - The name of the account. This parameter cannot be or an empty string. - - is . - - is an empty string. --or- - is too long. --or- - is too long. - - - Returns a value that indicates whether this object is equal to a specified object. - An object to compare with this object, or . - - if is an object with the same underlying type and value as this object; otherwise, . - - - Serves as a hash function for the current object. The method is suitable for hashing algorithms and data structures like a hash table. - A hash value for the current object. - - - Returns a value that indicates whether the specified type is a valid translation type for the class. - The type being queried for validity to serve as a conversion from . The following target types are valid: -- -- - - if is a valid translation type for the class; otherwise . - - - Compares two objects to determine whether they are equal. They are considered equal if they have the same canonical name representation as the one returned by the property or if they are both . - The left operand to use for the equality comparison. This parameter can be . - The right operand to use for the equality comparison. This parameter can be . - - if and are equal; otherwise . - - - Compares two objects to determine whether they are not equal. They are considered not equal if they have different canonical name representations than the one returned by the property or if one of the objects is and the other is not. - The left operand to use for the inequality comparison. This parameter can be . - The right operand to use for the inequality comparison. This parameter can be . - - if and are not equal; otherwise . - - - Returns the account name, in Domain \ Account format, for the account represented by the object. - The account name, in Domain \ Account format. - - - Translates the account name represented by the object into another -derived type. - The target type for the conversion from . The target type must be a type that is considered valid by the method. - The converted identity. - - is . - - is not an type. - Some or all identity references could not be translated. - The source account name is too long. --or- -A Win32 error code was returned. - - - Returns a string representation of this object. - The string representation of this object. - - - Represents a security identifier (SID) and provides marshaling and comparison operations for SIDs. - - - Initializes a new instance of the class by using a specified binary representation of a security identifier (SID). - The byte array that represents the SID. - The byte offset to use as the starting index in . - - - Initializes a new instance of the class by using an integer that represents the binary form of a security identifier (SID). - An integer that represents the binary form of a SID. - - - Initializes a new instance of the class by using the specified well known security identifier (SID) type and domain SID. - One of the enumeration values. This value must not be . - The domain SID. This value is required for the following values. This parameter is ignored for any other values. -- -- -- -- -- -- -- -- -- -- -- -- -- - - - Initializes a new instance of the class by using the specified security identifier (SID) in Security Descriptor Definition Language (SDDL) format. - SDDL string for the SID used to create the object. - - - Returns the account domain security identifier (SID) portion from the SID represented by the object if the SID represents a Windows account SID. If the SID does not represent a Windows account SID, this property returns . - The account domain SID portion from the SID represented by the object if the SID represents a Windows account SID; otherwise, it returns . - - - Returns the length, in bytes, of the security identifier (SID) represented by the object. - The length, in bytes, of the SID represented by the object. - - - Compares the current object with the specified object. - The object to compare with the current object. - A signed number indicating the relative values of this instance and . - Return Value - - Description - - Less than zero - - This instance is less than . - - Zero - - This instance is equal to . - - Greater than zero - - This instance is greater than . - - - Returns a value that indicates whether this object is equal to a specified object. - An object to compare with this object, or . - - if is an object with the same underlying type and value as this object; otherwise, . - - - Indicates whether the specified object is equal to the current object. - The object to compare with the current object. - - if the value of is equal to the value of the current object. - - - Copies the binary representation of the specified security identifier (SID) represented by the class to a byte array. - The byte array to receive the copied SID. - The byte offset to use as the starting index in . - - - Serves as a hash function for the current object. The method is suitable for hashing algorithms and data structures like a hash table. - A hash value for the current object. - - - Returns a value that indicates whether the security identifier (SID) represented by this object is a valid Windows account SID. - - if the SID represented by this object is a valid Windows account SID; otherwise, . - - - Returns a value that indicates whether the security identifier (SID) represented by this object is from the same domain as the specified SID. - The SID to compare with this object. - - if the SID represented by this object is in the same domain as the SID; otherwise, . - - - Returns a value that indicates whether the specified type is a valid translation type for the class. - The type being queried for validity to serve as a conversion from . The following target types are valid: -- -- - - if is a valid translation type for the class; otherwise, . - - - Returns a value that indicates whether the object matches the specified well known security identifier (SID) type. - A value to compare with the object. - - if is the SID type for the object; otherwise, . - - - Returns the maximum size, in bytes, of the binary representation of the security identifier. - - - Returns the minimum size, in bytes, of the binary representation of the security identifier. - - - Compares two objects to determine whether they are equal. They are considered equal if they have the same canonical representation as the one returned by the property or if they are both . - The left operand to use for the equality comparison. This parameter can be . - The right operand to use for the equality comparison. This parameter can be . - - if and are equal; otherwise, . - - - Compares two objects to determine whether they are not equal. They are considered not equal if they have different canonical name representations than the one returned by the property or if one of the objects is and the other is not. - The left operand to use for the inequality comparison. This parameter can be . - The right operand to use for the inequality comparison. This parameter can be . - - if and are not equal; otherwise, . - - - Returns the security identifier (SID), in Security Descriptor Definition Language (SDDL) format, for the account represented by the object. An example of the SDDL format is S-1-5-9. - The SID, in SDDL format, for the account represented by the object. - - - Translates the account name represented by the object into another -derived type. - The target type for the conversion from . The target type must be a type that is considered valid by the method. - The converted identity. - - is . - - is not an type. - Some or all identity references could not be translated. - A Win32 error code was returned. - - - Returns an uppercase Security Descriptor Definition Language (SDDL) string for the security identifier (SID) represented by this object. - An uppercase SDDL string for the SID represented by the object. - - - Defines the privileges of the user account associated with the access token. - - - The user can change the default owner, primary group, or discretionary access control list (DACL) of the token. - - - The user can change the attributes of the groups in the token. - - - The user can enable or disable privileges in the token. - - - The user can adjust the session identifier of the token. - - - The user has all possible access to the token. - - - The user can attach a primary token to a process. - - - The user can duplicate the token. - - - The user can impersonate a client. - - - The maximum value that can be assigned for the enumeration. - - - The user can query the token. - - - The user can query the source of the token. - - - The user has standard read rights and the privilege for the token. - - - The user has standard write rights and the , and privileges for the token. - - - Defines a set of commonly used security identifiers (SIDs). - - - Indicates a SID that matches the account administrators group. - - - Indicates a SID that matches the certificate administrators group. - - - Indicates a SID that matches the account computer group. - - - Indicates a SID that matches the account controller group. - - - Indicates a SID that matches the account domain administrator group. - - - Indicates a SID that matches the account domain guests group. - - - Indicates a SID that matches the account domain users group. - - - Indicates a SID that matches the enterprise administrators group. - - - Indicates a SID that matches the account guest group. - - - Indicates a SID that matches the account Kerberos target group. - - - Indicates a SID that matches the policy administrators group. - - - Indicates a SID that matches the RAS and IAS server account. - - - Indicates a SID that matches the schema administrators group. - - - Indicates a SID for the anonymous account. - - - Indicates a SID for an authenticated user. - - - Indicates a SID for a batch process. This SID is added to the process of a token when it logs on as a batch job. - - - Indicates a SID that matches the account operators account. - - - Indicates a SID that matches the administrator account. - - - Indicates a SID that matches the Windows Authorization Access group. - - - Indicates a SID that matches the backup operators group. - - - Indicates a SID that matches the domain account. - - - Indicates a SID that matches the guest account. - - - Indicates a SID that allows a user to create incoming forest trusts. It is added to the token of users who are a member of the Incoming Forest Trust Builders built-in group in the root domain of the forest. - - - Indicates a SID that matches the network operators group. - - - Indicates a SID that matches the group of users that have remote access to monitor the computer. - - - Indicates a SID that matches the group of users that have remote access to schedule logging of performance counters on this computer. - - - Indicates a SID that matches the power users group. - - - Indicates a SID that matches pre-Windows 2000 compatible accounts. - - - Indicates a SID that matches the print operators group. - - - Indicates a SID that matches remote desktop users. - - - Indicates a SID that matches the replicator account. - - - Indicates a SID that matches the system operators group. - - - Indicates a SID that matches built-in user accounts. - - - Indicates a creator group server SID. - - - Indicates a SID that matches the creator group of an object. - - - Indicates a creator owner server SID. - - - Indicates a SID that matches the owner or creator of an object. - - - Indicates a SID for a dial-up account. - - - Indicates a SID present when the Microsoft Digest authentication package authenticated the client. - - - Indicates a SID for an enterprise controller. - - - Indicates a SID for an interactive account. This SID is added to the process of a token when it logs on interactively. - - - Indicates a SID that matches a local service. - - - Indicates a local SID. - - - Indicates a SID that matches the local system. - - - Indicates a SID that matches logon IDs. - - - Indicates the maximum defined SID in the enumeration. - - - Indicates a SID that matches a network service. - - - Indicates a SID for a network account. This SID is added to the process of a token when it logs on across a network. - - - Indicates a SID for the Windows NT authority. - - - Indicates a SID present when the Microsoft NTLM authentication package authenticated the client. - - - Indicates a null SID. - - - Indicates a SID present when the user authenticated across a forest with the selective authentication option enabled. If this SID is present, then cannot be present. - - - Indicates a proxy SID. - - - Indicates a SID that matches remote logons. - - - Indicates a SID for restricted code. - - - Indicates a SID present when the Secure Channel (SSL/TLS) authentication package authenticated the client. - - - Indicates a SID for self. - - - Indicates a SID for a service. This SID is added to the process of a token when it logs on as a service. - - - Indicates a SID that matches a terminal server account. - - - Indicates a SID present when the user authenticated from within the forest or across a trust that does not have the selective authentication option enabled. If this SID is present, then cannot be present. - - - Indicates a SID that matches an account read-only controllers group. - - - Indicates a SID that matches the application package authority. - - - Indicates a SID that applies to all app containers. - - - Indicates a SID that matches the built-in DCOM certification services access group. - - - Indicates a SID that allows a user to use cryptographic operations. It is added to the token of users who are a member of the CryptoOperators built-in group. - - - Indicates a SID that matches the distributed COM user group. - - - Indicates a SID that matches an event log readers group. - - - Indicates a SID that matches the Internet built-in user group. - - - Indicates a SID is present in a server that can issue Terminal Server licenses. - - - Indicates a SID that matches a cacheable principals group. - - - Indicates a SID for documents library capability for app containers. - - - Indicates a SID for Windows credentials capability for app containers. - - - Indicates a SID of Internet client and server capability for app containers. - - - Indicates a SID of Internet client capability for app containers. - - - Indicates a SID for music library capability for app containers. - - - Indicates a SID for pictures library capability for app containers. - - - Indicates a SID of private network client and server capability for app containers. - - - Indicates a SID for removable storage capability for app containers. - - - Indicates a SID for shared user certificates capability for app containers. - - - Indicates a SID for videos library capability for app containers. - - - Indicates a SID that matches a console logon group. - - - Indicates a SID that matches a creator and owner rights group. - - - Indicates a SID that matches an enterprise wide read-only controllers group. - - - Indicates a SID that matches a high level of trust label. - - - Indicates a SID that matches the Internet user group. - - - Indicates a SID that matches a local logon group. - - - Indicates a SID that matches an low level of trust label. - - - Indicates a SID that matches an medium level of trust label. - - - Indicates a SID that matches the medium plus integrity label. - - - Indicates a SID that matches a read-only enterprise domain controller. - - - Indicates a SID that matches a non-cacheable principals group. - - - Indicates a SID that matches a system label. - - - Indicates a SID that matches a certificate for the given organization. - - - Indicates a SID that matches an untrusted label. - - - Indicates a SID that matches a write restricted code group. - - - Indicates a SID that matches everyone. - - - Specifies the type of Windows account used. - - - An anonymous account. - - - A Windows guest account. - - - A standard user account. - - - A Windows system account. - - - Specifies common roles to be used with . - - - Account operators manage the user accounts on a computer or domain. - - - Administrators have complete and unrestricted access to the computer or domain. - - - Backup operators can override security restrictions for the sole purpose of backing up or restoring files. - - - Guests are more restricted than users. - - - Power users possess most administrative permissions with some restrictions. Thus, power users can run legacy applications, in addition to certified applications. - - - Print operators can take control of a printer. - - - Replicators support file replication in a domain. - - - System operators manage a particular computer. - - - Users are prevented from making accidental or intentional system-wide changes. Thus, users can run certified applications, but not most legacy applications. - - - Represents a Windows user. - - - Initializes a new instance of the class for the user represented by the specified Windows account token. - The account token for the user on whose behalf the code is running. - - is 0. --or- - is duplicated and invalid for impersonation. - The caller does not have the correct permissions. --or- -A Win32 error occurred. - - - Initializes a new instance of the class for the user represented by the specified Windows account token and the specified authentication type. - The account token for the user on whose behalf the code is running. - (Informational use only.) The type of authentication used to identify the user. - - is 0. --or- - is duplicated and invalid for impersonation. - The caller does not have the correct permissions. --or- -A Win32 error occurred. - - - Initializes a new instance of the class for the user represented by the specified Windows account token, the specified authentication type, and the specified Windows account type. - The account token for the user on whose behalf the code is running. - (Informational use only.) The type of authentication used to identify the user. - One of the enumeration values. - - is 0. --or- - is duplicated and invalid for impersonation. - The caller does not have the correct permissions. --or- -A Win32 error occurred. - - - Initializes a new instance of the class for the user represented by the specified Windows account token, the specified authentication type, the specified Windows account type, and the specified authentication status. - The account token for the user on whose behalf the code is running. - (Informational use only.) The type of authentication used to identify the user. - One of the enumeration values. - - to indicate that the user is authenticated; otherwise, . - - is 0. --or- - is duplicated and invalid for impersonation. - The caller does not have the correct permissions. --or- -A Win32 error occurred. - - - Initializes a new instance of the class for the user represented by information in a stream. - The object containing the account information for the user. - An object that indicates the stream characteristics. - A cannot be serialized across processes. - The caller does not have the correct permissions. --or- -A Win32 error occurred. - - - Initializes a new instance of the class by using the specified object. - The object from which to construct the new instance of . - - - Initializes a new instance of the class for the user represented by the specified User Principal Name (UPN). - The UPN for the user on whose behalf the code is running. - Windows returned the Windows NT status code STATUS_ACCESS_DENIED. - There is insufficient memory available. - The caller does not have the correct permissions. --or- -The computer is not attached to a Windows 2003 or later domain. --or- -The computer is not running Windows 2003 or later. --or- -The user is not a member of the domain the computer is attached to. - - - Gets this for this instance. - Returns a . - - - Gets the type of authentication used to identify the user. - The type of authentication used to identify the user. - Windows returned the Windows NT status code STATUS_ACCESS_DENIED. - There is insufficient memory available. - The caller does not have the correct permissions. --or- -The computer is not attached to a Windows 2003 or later domain. --or- -The computer is not running Windows 2003 or later. --or- -The user is not a member of the domain the computer is attached to. - - - Gets all claims for the user represented by this Windows identity. - A collection of claims for this object. - - - Creates a new object that is a copy of the current instance. - A copy of the current instance. - - - Identifies the name of the default issuer. - - - Gets claims that have the property key. - A collection of claims that have the property key. - - - Releases all resources used by the . - - - Releases the unmanaged resources used by the and optionally releases the managed resources. - - to release both managed and unmanaged resources; to release only unmanaged resources. - - - Returns a object that you can use as a sentinel value in your code to represent an anonymous user. The property value does not represent the built-in anonymous identity used by the Windows operating system. - An object that represents an anonymous user. - - - Returns a object that represents the current Windows user. - An object that represents the current user. - The caller does not have the correct permissions. - - - Returns a object that represents the Windows identity for either the thread or the process, depending on the value of the parameter. - - to return the only if the thread is currently impersonating; to return the of the thread if it is impersonating or the of the process if the thread is not currently impersonating. - An object that represents a Windows user. - - - Returns a object that represents the current Windows user, using the specified desired token access level. - A bitwise combination of the enumeration values. - An object that represents the current user. - - - Gets the groups the current Windows user belongs to. - An object representing the groups the current Windows user belongs to. - - - Gets the impersonation level for the user. - One of the enumeration values that specifies the impersonation level. - - - Gets a value that indicates whether the user account is identified as an anonymous account by the system. - - if the user account is an anonymous account; otherwise, . - - - Gets a value indicating whether the user has been authenticated by Windows. - - if the user was authenticated; otherwise, . - - - Gets a value indicating whether the user account is identified as a account by the system. - - if the user account is a account; otherwise, . - - - Gets a value indicating whether the user account is identified as a account by the system. - - if the user account is a account; otherwise, . - - - Gets the user's Windows logon name. - The Windows logon name of the user on whose behalf the code is being run. - - - Gets the security identifier (SID) for the token owner. - An object for the token owner. - - - Runs the specified action as the impersonated Windows identity. Instead of using an impersonated method call and running your function in , you can use and provide your function directly as a parameter. - The SafeAccessTokenHandle of the impersonated Windows identity. - The System.Action to run. - - - Runs the specified function as the impersonated Windows identity. Instead of using an impersonated method call and running your function in , you can use and provide your function directly as a parameter. - The SafeAccessTokenHandle of the impersonated Windows identity. - The System.Func to run. - The type of object used by and returned by the function. - The result of the function. - - - Implements the interface and is called back by the deserialization event when deserialization is complete. - The source of the deserialization event. - - - Sets the object with the logical context information needed to recreate an instance of this execution context. - An object containing the information required to serialize the . - An object containing the source and destination of the serialized stream associated with the . - - - Gets the Windows account token for the user. - The handle of the access token associated with the current execution thread. - - - Gets the security identifier (SID) for the user. - An object for the user. - - - Gets claims that have the property key. - A collection of claims that have the property key. - - - Enables code to check the Windows group membership of a Windows user. - - - Initializes a new instance of the class by using the specified object. - The object from which to construct the new instance of . - - is . - - - Gets all Windows device claims from this principal. - A collection of all Windows device claims from this principal. - - - Gets the identity of the current principal. - The object of the current principal. - - - Determines whether the current principal belongs to the Windows user group with the specified relative identifier (RID). - The RID of the Windows user group in which to check for the principal's membership status. - - if the current principal is a member of the specified Windows user group, that is, in a particular role; otherwise, . - - - Determines whether the current principal belongs to the Windows user group with the specified security identifier (SID). - A that uniquely identifies a Windows user group. - - if the current principal is a member of the specified Windows user group; otherwise, . - - is . - Windows returned a Win32 error. - - - Determines whether the current principal belongs to the Windows user group with the specified . - One of the values. - - if the current principal is a member of the specified Windows user group; otherwise, . - - is not a valid value. - - - Determines whether the current principal belongs to the Windows user group with the specified name. - The name of the Windows user group for which to check membership. - - if the current principal is a member of the specified Windows user group; otherwise, . - - - Gets all Windows user claims from this principal. - A collection of all Windows user claims from this principal. - - + + + + System.Security.Principal.Windows + + + + Provides a safe handle to a Windows thread or process access token. For more information, see Access Tokens. + + + Initializes a new instance of the class. + An object that represents the pre-existing handle to use. Using returns an invalid handle. + + + Returns an invalid handle by instantiating a object with . + Returns a object. + + + Gets a value that indicates whether the handle is invalid. + + if the handle is not valid; otherwise, . + + + Represents an exception for a principal whose identity could not be mapped to a known identity. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class by using the specified error message. + The error message that explains the reason for the exception. + + + Initializes a new instance of the class by using the specified error message and inner exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. If is not null, the current exception is raised in a block that handles the inner exception. + + + Gets serialization information with the data needed to create an instance of this object. + The object that holds the serialized object data about the exception being thrown. + The object that contains contextual information about the source or destination. + + + Represents the collection of unmapped identities for an exception. + The collection of unmapped identities. + + + Represents an identity and is the base class for the and classes. This class does not provide a public constructor, and therefore cannot be inherited. + + + Returns a value that indicates whether the specified object equals this instance of the class. + An object to compare with this instance, or a null reference. + + if is an object with the same underlying type and value as this instance; otherwise, . + + + Serves as a hash function for . is suitable for use in hashing algorithms and data structures like a hash table. + The hash code for this object. + + + Returns a value that indicates whether the specified type is a valid translation type for the class. + The type being queried for validity to serve as a conversion from . The following target types are valid: + + + if is a valid translation type for the class; otherwise, . + + + Compares two objects to determine whether they are equal. They are considered equal if they have the same canonical name representation as the one returned by the property or if they are both . + The left operand to use for the equality comparison. This parameter can be . + The right operand to use for the equality comparison. This parameter can be . + + if and are equal; otherwise, . + + + Compares two objects to determine whether they are not equal. They are considered not equal if they have different canonical name representations than the one returned by the property or if one of the objects is and the other is not. + The left operand to use for the inequality comparison. This parameter can be . + The right operand to use for the inequality comparison. This parameter can be . + + if and are not equal; otherwise, . + + + Returns the string representation of the identity represented by the object. + The identity in string format. + + + Translates the account name represented by the object into another -derived type. + The target type for the conversion from . + The converted identity. + + + Gets the string value of the identity represented by the object. + The string value of the identity represented by the object. + + + Represents a collection of objects and provides a means of converting sets of -derived objects to -derived types. + + + Initializes a new instance of the class with zero items in the collection. + + + Initializes a new instance of the class by using the specified initial size. + The initial number of items in the collection. The value of is a hint only; it is not necessarily the maximum number of items created. + + + Adds an object to the collection. + The object to add to the collection. + + is . + + + Clears all objects from the collection. + + + Indicates whether the collection contains the specified object. + The object to check for. + + if the collection contains the specified object. + + is . + + + Copies the collection to an array, starting at the specified index. + An array object to which the collection is to be copied. + The zero-based index in where the collection is to be copied. + + + Gets the number of items in the collection. + The number of objects in the collection. + + + Gets an enumerator that can be used to iterate through the collection. + An enumerator for the collection. + + + Sets or gets the node at the specified index of the collection. + The zero-based index in the collection. + The at the specified index in the collection. If is greater than or equal to the number of nodes in the collection, the return value is . + + + Removes the specified object from the collection. + The object to remove. + + if the specified object was removed from the collection. + + is . + + + + Gets an enumerator that can be used to iterate through the collection. + An enumerator for the collection. + + + Converts the objects in the collection to the specified type. Calling this method is the same as calling with the second parameter set to , which means that exceptions will not be thrown for items that fail conversion. + The type to which items in the collection are being converted. + A collection that represents the converted contents of the original collection. + + + Converts the objects in the collection to the specified type and uses the specified fault tolerance to handle or ignore errors associated with a type not having a conversion mapping. + The type to which items in the collection are being converted. + A Boolean value that determines how conversion errors are handled. +If is , conversion errors due to a mapping not being found for the translation result in a failed conversion and exceptions being thrown. +If is , types that failed to convert due to a mapping not being found for the translation are copied without being converted into the collection being returned. + A collection that represents the converted contents of the original collection. + + + Represents a user or group account. + + + Initializes a new instance of the class by using the specified name. + The name used to create the object. This parameter cannot be or an empty string. + + is . + + is an empty string. +-or- + is too long. + + + Initializes a new instance of the class by using the specified domain name and account name. + The name of the domain. This parameter can be or an empty string. Domain names that are null values are treated like an empty string. + The name of the account. This parameter cannot be or an empty string. + + is . + + is an empty string. +-or- + is too long. +-or- + is too long. + + + Returns a value that indicates whether this object is equal to a specified object. + An object to compare with this object, or . + + if is an object with the same underlying type and value as this object; otherwise, . + + + Serves as a hash function for the current object. The method is suitable for hashing algorithms and data structures like a hash table. + A hash value for the current object. + + + Returns a value that indicates whether the specified type is a valid translation type for the class. + The type being queried for validity to serve as a conversion from . The following target types are valid: +- +- + + if is a valid translation type for the class; otherwise . + + + Compares two objects to determine whether they are equal. They are considered equal if they have the same canonical name representation as the one returned by the property or if they are both . + The left operand to use for the equality comparison. This parameter can be . + The right operand to use for the equality comparison. This parameter can be . + + if and are equal; otherwise . + + + Compares two objects to determine whether they are not equal. They are considered not equal if they have different canonical name representations than the one returned by the property or if one of the objects is and the other is not. + The left operand to use for the inequality comparison. This parameter can be . + The right operand to use for the inequality comparison. This parameter can be . + + if and are not equal; otherwise . + + + Returns the account name, in Domain \ Account format, for the account represented by the object. + The account name, in Domain \ Account format. + + + Translates the account name represented by the object into another -derived type. + The target type for the conversion from . The target type must be a type that is considered valid by the method. + The converted identity. + + is . + + is not an type. + Some or all identity references could not be translated. + The source account name is too long. +-or- +A Win32 error code was returned. + + + Returns a string representation of this object. + The string representation of this object. + + + Represents a security identifier (SID) and provides marshaling and comparison operations for SIDs. + + + Initializes a new instance of the class by using a specified binary representation of a security identifier (SID). + The byte array that represents the SID. + The byte offset to use as the starting index in . + + + Initializes a new instance of the class by using an integer that represents the binary form of a security identifier (SID). + An integer that represents the binary form of a SID. + + + Initializes a new instance of the class by using the specified well known security identifier (SID) type and domain SID. + One of the enumeration values. This value must not be . + The domain SID. This value is required for the following values. This parameter is ignored for any other values. +- +- +- +- +- +- +- +- +- +- +- +- +- + + + Initializes a new instance of the class by using the specified security identifier (SID) in Security Descriptor Definition Language (SDDL) format. + SDDL string for the SID used to create the object. + + + Returns the account domain security identifier (SID) portion from the SID represented by the object if the SID represents a Windows account SID. If the SID does not represent a Windows account SID, this property returns . + The account domain SID portion from the SID represented by the object if the SID represents a Windows account SID; otherwise, it returns . + + + Returns the length, in bytes, of the security identifier (SID) represented by the object. + The length, in bytes, of the SID represented by the object. + + + Compares the current object with the specified object. + The object to compare with the current object. + A signed number indicating the relative values of this instance and . + Return Value + + Description + + Less than zero + + This instance is less than . + + Zero + + This instance is equal to . + + Greater than zero + + This instance is greater than . + + + Returns a value that indicates whether this object is equal to a specified object. + An object to compare with this object, or . + + if is an object with the same underlying type and value as this object; otherwise, . + + + Indicates whether the specified object is equal to the current object. + The object to compare with the current object. + + if the value of is equal to the value of the current object. + + + Copies the binary representation of the specified security identifier (SID) represented by the class to a byte array. + The byte array to receive the copied SID. + The byte offset to use as the starting index in . + + + Serves as a hash function for the current object. The method is suitable for hashing algorithms and data structures like a hash table. + A hash value for the current object. + + + Returns a value that indicates whether the security identifier (SID) represented by this object is a valid Windows account SID. + + if the SID represented by this object is a valid Windows account SID; otherwise, . + + + Returns a value that indicates whether the security identifier (SID) represented by this object is from the same domain as the specified SID. + The SID to compare with this object. + + if the SID represented by this object is in the same domain as the SID; otherwise, . + + + Returns a value that indicates whether the specified type is a valid translation type for the class. + The type being queried for validity to serve as a conversion from . The following target types are valid: +- +- + + if is a valid translation type for the class; otherwise, . + + + Returns a value that indicates whether the object matches the specified well known security identifier (SID) type. + A value to compare with the object. + + if is the SID type for the object; otherwise, . + + + Returns the maximum size, in bytes, of the binary representation of the security identifier. + + + Returns the minimum size, in bytes, of the binary representation of the security identifier. + + + Compares two objects to determine whether they are equal. They are considered equal if they have the same canonical representation as the one returned by the property or if they are both . + The left operand to use for the equality comparison. This parameter can be . + The right operand to use for the equality comparison. This parameter can be . + + if and are equal; otherwise, . + + + Compares two objects to determine whether they are not equal. They are considered not equal if they have different canonical name representations than the one returned by the property or if one of the objects is and the other is not. + The left operand to use for the inequality comparison. This parameter can be . + The right operand to use for the inequality comparison. This parameter can be . + + if and are not equal; otherwise, . + + + Returns the security identifier (SID), in Security Descriptor Definition Language (SDDL) format, for the account represented by the object. An example of the SDDL format is S-1-5-9. + The SID, in SDDL format, for the account represented by the object. + + + Translates the account name represented by the object into another -derived type. + The target type for the conversion from . The target type must be a type that is considered valid by the method. + The converted identity. + + is . + + is not an type. + Some or all identity references could not be translated. + A Win32 error code was returned. + + + Returns an uppercase Security Descriptor Definition Language (SDDL) string for the security identifier (SID) represented by this object. + An uppercase SDDL string for the SID represented by the object. + + + Defines the privileges of the user account associated with the access token. + + + The user can change the default owner, primary group, or discretionary access control list (DACL) of the token. + + + The user can change the attributes of the groups in the token. + + + The user can enable or disable privileges in the token. + + + The user can adjust the session identifier of the token. + + + The user has all possible access to the token. + + + The user can attach a primary token to a process. + + + The user can duplicate the token. + + + The user can impersonate a client. + + + The maximum value that can be assigned for the enumeration. + + + The user can query the token. + + + The user can query the source of the token. + + + The user has standard read rights and the privilege for the token. + + + The user has standard write rights and the , and privileges for the token. + + + Defines a set of commonly used security identifiers (SIDs). + + + Indicates a SID that matches the account administrators group. + + + Indicates a SID that matches the certificate administrators group. + + + Indicates a SID that matches the account computer group. + + + Indicates a SID that matches the account controller group. + + + Indicates a SID that matches the account domain administrator group. + + + Indicates a SID that matches the account domain guests group. + + + Indicates a SID that matches the account domain users group. + + + Indicates a SID that matches the enterprise administrators group. + + + Indicates a SID that matches the account guest group. + + + Indicates a SID that matches the account Kerberos target group. + + + Indicates a SID that matches the policy administrators group. + + + Indicates a SID that matches the RAS and IAS server account. + + + Indicates a SID that matches the schema administrators group. + + + Indicates a SID for the anonymous account. + + + Indicates a SID for an authenticated user. + + + Indicates a SID for a batch process. This SID is added to the process of a token when it logs on as a batch job. + + + Indicates a SID that matches the account operators account. + + + Indicates a SID that matches the administrator account. + + + Indicates a SID that matches the Windows Authorization Access group. + + + Indicates a SID that matches the backup operators group. + + + Indicates a SID that matches the domain account. + + + Indicates a SID that matches the guest account. + + + Indicates a SID that allows a user to create incoming forest trusts. It is added to the token of users who are a member of the Incoming Forest Trust Builders built-in group in the root domain of the forest. + + + Indicates a SID that matches the network operators group. + + + Indicates a SID that matches the group of users that have remote access to monitor the computer. + + + Indicates a SID that matches the group of users that have remote access to schedule logging of performance counters on this computer. + + + Indicates a SID that matches the power users group. + + + Indicates a SID that matches pre-Windows 2000 compatible accounts. + + + Indicates a SID that matches the print operators group. + + + Indicates a SID that matches remote desktop users. + + + Indicates a SID that matches the replicator account. + + + Indicates a SID that matches the system operators group. + + + Indicates a SID that matches built-in user accounts. + + + Indicates a creator group server SID. + + + Indicates a SID that matches the creator group of an object. + + + Indicates a creator owner server SID. + + + Indicates a SID that matches the owner or creator of an object. + + + Indicates a SID for a dial-up account. + + + Indicates a SID present when the Microsoft Digest authentication package authenticated the client. + + + Indicates a SID for an enterprise controller. + + + Indicates a SID for an interactive account. This SID is added to the process of a token when it logs on interactively. + + + Indicates a SID that matches a local service. + + + Indicates a local SID. + + + Indicates a SID that matches the local system. + + + Indicates a SID that matches logon IDs. + + + Indicates the maximum defined SID in the enumeration. + + + Indicates a SID that matches a network service. + + + Indicates a SID for a network account. This SID is added to the process of a token when it logs on across a network. + + + Indicates a SID for the Windows NT authority. + + + Indicates a SID present when the Microsoft NTLM authentication package authenticated the client. + + + Indicates a null SID. + + + Indicates a SID present when the user authenticated across a forest with the selective authentication option enabled. If this SID is present, then cannot be present. + + + Indicates a proxy SID. + + + Indicates a SID that matches remote logons. + + + Indicates a SID for restricted code. + + + Indicates a SID present when the Secure Channel (SSL/TLS) authentication package authenticated the client. + + + Indicates a SID for self. + + + Indicates a SID for a service. This SID is added to the process of a token when it logs on as a service. + + + Indicates a SID that matches a terminal server account. + + + Indicates a SID present when the user authenticated from within the forest or across a trust that does not have the selective authentication option enabled. If this SID is present, then cannot be present. + + + Indicates a SID that matches an account read-only controllers group. + + + Indicates a SID that matches the application package authority. + + + Indicates a SID that applies to all app containers. + + + Indicates a SID that matches the built-in DCOM certification services access group. + + + Indicates a SID that allows a user to use cryptographic operations. It is added to the token of users who are a member of the CryptoOperators built-in group. + + + Indicates a SID that matches the distributed COM user group. + + + Indicates a SID that matches an event log readers group. + + + Indicates a SID that matches the Internet built-in user group. + + + Indicates a SID is present in a server that can issue Terminal Server licenses. + + + Indicates a SID that matches a cacheable principals group. + + + Indicates a SID for documents library capability for app containers. + + + Indicates a SID for Windows credentials capability for app containers. + + + Indicates a SID of Internet client and server capability for app containers. + + + Indicates a SID of Internet client capability for app containers. + + + Indicates a SID for music library capability for app containers. + + + Indicates a SID for pictures library capability for app containers. + + + Indicates a SID of private network client and server capability for app containers. + + + Indicates a SID for removable storage capability for app containers. + + + Indicates a SID for shared user certificates capability for app containers. + + + Indicates a SID for videos library capability for app containers. + + + Indicates a SID that matches a console logon group. + + + Indicates a SID that matches a creator and owner rights group. + + + Indicates a SID that matches an enterprise wide read-only controllers group. + + + Indicates a SID that matches a high level of trust label. + + + Indicates a SID that matches the Internet user group. + + + Indicates a SID that matches a local logon group. + + + Indicates a SID that matches an low level of trust label. + + + Indicates a SID that matches an medium level of trust label. + + + Indicates a SID that matches the medium plus integrity label. + + + Indicates a SID that matches a read-only enterprise domain controller. + + + Indicates a SID that matches a non-cacheable principals group. + + + Indicates a SID that matches a system label. + + + Indicates a SID that matches a certificate for the given organization. + + + Indicates a SID that matches an untrusted label. + + + Indicates a SID that matches a write restricted code group. + + + Indicates a SID that matches everyone. + + + Specifies the type of Windows account used. + + + An anonymous account. + + + A Windows guest account. + + + A standard user account. + + + A Windows system account. + + + Specifies common roles to be used with . + + + Account operators manage the user accounts on a computer or domain. + + + Administrators have complete and unrestricted access to the computer or domain. + + + Backup operators can override security restrictions for the sole purpose of backing up or restoring files. + + + Guests are more restricted than users. + + + Power users possess most administrative permissions with some restrictions. Thus, power users can run legacy applications, in addition to certified applications. + + + Print operators can take control of a printer. + + + Replicators support file replication in a domain. + + + System operators manage a particular computer. + + + Users are prevented from making accidental or intentional system-wide changes. Thus, users can run certified applications, but not most legacy applications. + + + Represents a Windows user. + + + Initializes a new instance of the class for the user represented by the specified Windows account token. + The account token for the user on whose behalf the code is running. + + is 0. +-or- + is duplicated and invalid for impersonation. + The caller does not have the correct permissions. +-or- +A Win32 error occurred. + + + Initializes a new instance of the class for the user represented by the specified Windows account token and the specified authentication type. + The account token for the user on whose behalf the code is running. + (Informational use only.) The type of authentication used to identify the user. + + is 0. +-or- + is duplicated and invalid for impersonation. + The caller does not have the correct permissions. +-or- +A Win32 error occurred. + + + Initializes a new instance of the class for the user represented by the specified Windows account token, the specified authentication type, and the specified Windows account type. + The account token for the user on whose behalf the code is running. + (Informational use only.) The type of authentication used to identify the user. + One of the enumeration values. + + is 0. +-or- + is duplicated and invalid for impersonation. + The caller does not have the correct permissions. +-or- +A Win32 error occurred. + + + Initializes a new instance of the class for the user represented by the specified Windows account token, the specified authentication type, the specified Windows account type, and the specified authentication status. + The account token for the user on whose behalf the code is running. + (Informational use only.) The type of authentication used to identify the user. + One of the enumeration values. + + to indicate that the user is authenticated; otherwise, . + + is 0. +-or- + is duplicated and invalid for impersonation. + The caller does not have the correct permissions. +-or- +A Win32 error occurred. + + + Initializes a new instance of the class for the user represented by information in a stream. + The object containing the account information for the user. + An object that indicates the stream characteristics. + A cannot be serialized across processes. + The caller does not have the correct permissions. +-or- +A Win32 error occurred. + + + Initializes a new instance of the class by using the specified object. + The object from which to construct the new instance of . + + + Initializes a new instance of the class for the user represented by the specified User Principal Name (UPN). + The UPN for the user on whose behalf the code is running. + Windows returned the Windows NT status code STATUS_ACCESS_DENIED. + There is insufficient memory available. + The caller does not have the correct permissions. +-or- +The computer is not attached to a Windows 2003 or later domain. +-or- +The computer is not running Windows 2003 or later. +-or- +The user is not a member of the domain the computer is attached to. + + + Gets this for this instance. + Returns a . + + + Gets the type of authentication used to identify the user. + The type of authentication used to identify the user. + Windows returned the Windows NT status code STATUS_ACCESS_DENIED. + There is insufficient memory available. + The caller does not have the correct permissions. +-or- +The computer is not attached to a Windows 2003 or later domain. +-or- +The computer is not running Windows 2003 or later. +-or- +The user is not a member of the domain the computer is attached to. + + + Gets all claims for the user represented by this Windows identity. + A collection of claims for this object. + + + Creates a new object that is a copy of the current instance. + A copy of the current instance. + + + Identifies the name of the default issuer. + + + Gets claims that have the property key. + A collection of claims that have the property key. + + + Releases all resources used by the . + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + to release both managed and unmanaged resources; to release only unmanaged resources. + + + Returns a object that you can use as a sentinel value in your code to represent an anonymous user. The property value does not represent the built-in anonymous identity used by the Windows operating system. + An object that represents an anonymous user. + + + Returns a object that represents the current Windows user. + An object that represents the current user. + The caller does not have the correct permissions. + + + Returns a object that represents the Windows identity for either the thread or the process, depending on the value of the parameter. + + to return the only if the thread is currently impersonating; to return the of the thread if it is impersonating or the of the process if the thread is not currently impersonating. + An object that represents a Windows user. + + + Returns a object that represents the current Windows user, using the specified desired token access level. + A bitwise combination of the enumeration values. + An object that represents the current user. + + + Gets the groups the current Windows user belongs to. + An object representing the groups the current Windows user belongs to. + + + Gets the impersonation level for the user. + One of the enumeration values that specifies the impersonation level. + + + Gets a value that indicates whether the user account is identified as an anonymous account by the system. + + if the user account is an anonymous account; otherwise, . + + + Gets a value indicating whether the user has been authenticated by Windows. + + if the user was authenticated; otherwise, . + + + Gets a value indicating whether the user account is identified as a account by the system. + + if the user account is a account; otherwise, . + + + Gets a value indicating whether the user account is identified as a account by the system. + + if the user account is a account; otherwise, . + + + Gets the user's Windows logon name. + The Windows logon name of the user on whose behalf the code is being run. + + + Gets the security identifier (SID) for the token owner. + An object for the token owner. + + + Runs the specified action as the impersonated Windows identity. Instead of using an impersonated method call and running your function in , you can use and provide your function directly as a parameter. + The SafeAccessTokenHandle of the impersonated Windows identity. + The System.Action to run. + + + Runs the specified function as the impersonated Windows identity. Instead of using an impersonated method call and running your function in , you can use and provide your function directly as a parameter. + The SafeAccessTokenHandle of the impersonated Windows identity. + The System.Func to run. + The type of object used by and returned by the function. + The result of the function. + + + Implements the interface and is called back by the deserialization event when deserialization is complete. + The source of the deserialization event. + + + Sets the object with the logical context information needed to recreate an instance of this execution context. + An object containing the information required to serialize the . + An object containing the source and destination of the serialized stream associated with the . + + + Gets the Windows account token for the user. + The handle of the access token associated with the current execution thread. + + + Gets the security identifier (SID) for the user. + An object for the user. + + + Gets claims that have the property key. + A collection of claims that have the property key. + + + Enables code to check the Windows group membership of a Windows user. + + + Initializes a new instance of the class by using the specified object. + The object from which to construct the new instance of . + + is . + + + Gets all Windows device claims from this principal. + A collection of all Windows device claims from this principal. + + + Gets the identity of the current principal. + The object of the current principal. + + + Determines whether the current principal belongs to the Windows user group with the specified relative identifier (RID). + The RID of the Windows user group in which to check for the principal's membership status. + + if the current principal is a member of the specified Windows user group, that is, in a particular role; otherwise, . + + + Determines whether the current principal belongs to the Windows user group with the specified security identifier (SID). + A that uniquely identifies a Windows user group. + + if the current principal is a member of the specified Windows user group; otherwise, . + + is . + Windows returned a Win32 error. + + + Determines whether the current principal belongs to the Windows user group with the specified . + One of the values. + + if the current principal is a member of the specified Windows user group; otherwise, . + + is not a valid value. + + + Determines whether the current principal belongs to the Windows user group with the specified name. + The name of the Windows user group for which to check membership. + + if the current principal is a member of the specified Windows user group; otherwise, . + + + Gets all Windows user claims from this principal. + A collection of all Windows user claims from this principal. + + \ No newline at end of file diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.xml.meta b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.xml.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.xml.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.xml.meta diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/useSharedDesignerContext.txt b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/useSharedDesignerContext.txt similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/useSharedDesignerContext.txt rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/useSharedDesignerContext.txt diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/useSharedDesignerContext.txt.meta b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/useSharedDesignerContext.txt.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/useSharedDesignerContext.txt.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/useSharedDesignerContext.txt.meta diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/version.txt b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/version.txt similarity index 97% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/version.txt rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/version.txt index 0abba6e8..f5d54e72 100644 --- a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/version.txt +++ b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/version.txt @@ -1 +1 @@ -0f7f38c4fd323b26da10cce95f857f77f0f09b48 +0f7f38c4fd323b26da10cce95f857f77f0f09b48 diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/version.txt.meta b/Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/version.txt.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/version.txt.meta rename to Assets/PlayroomKit/Editor/dependencies/System.Security.Principal.Windows.4.7.0/version.txt.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Plugins.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Plugins.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Plugins.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Plugins.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Plugins/SeleniumLicense.txt b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Plugins/SeleniumLicense.txt similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Plugins/SeleniumLicense.txt rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Plugins/SeleniumLicense.txt diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Plugins/SeleniumLicense.txt.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Plugins/SeleniumLicense.txt.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Plugins/SeleniumLicense.txt.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Plugins/SeleniumLicense.txt.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Plugins/WebDriver.dll b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Plugins/WebDriver.dll similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Plugins/WebDriver.dll rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Plugins/WebDriver.dll diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Plugins/WebDriver.dll.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Plugins/WebDriver.dll.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Plugins/WebDriver.dll.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Plugins/WebDriver.dll.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Prefabs.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Prefabs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Prefabs.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Prefabs.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Prefabs/UnityBrowserBridge.prefab b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Prefabs/UnityBrowserBridge.prefab similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Prefabs/UnityBrowserBridge.prefab rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Prefabs/UnityBrowserBridge.prefab diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Prefabs/UnityBrowserBridge.prefab.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Prefabs/UnityBrowserBridge.prefab.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Prefabs/UnityBrowserBridge.prefab.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Prefabs/UnityBrowserBridge.prefab.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/delete.png b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/delete.png similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/delete.png rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/delete.png diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/delete.png.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/delete.png.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/delete.png.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/delete.png.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/favicon.ico b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/favicon.ico similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/favicon.ico rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/favicon.ico diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/favicon.ico.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/favicon.ico.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/favicon.ico.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/favicon.ico.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/index.html b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/index.html similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/index.html rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/index.html diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/index.html.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/index.html.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/index.html.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/index.html.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/style.css b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/style.css similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/style.css rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/style.css diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/style.css.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/style.css.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/style.css.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/style.css.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/ubb_logo.png b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/ubb_logo.png similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/ubb_logo.png rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/ubb_logo.png diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/ubb_logo.png.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/ubb_logo.png.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/ubb_logo.png.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/ubb_logo.png.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/unitybrowserbridge.js b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/unitybrowserbridge.js similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/unitybrowserbridge.js rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/unitybrowserbridge.js diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/unitybrowserbridge.js.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/unitybrowserbridge.js.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Resources/unitybrowserbridge.js.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Resources/unitybrowserbridge.js.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Scripts.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Scripts.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Scripts.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Scripts.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Scripts/HttpServer.cs b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Scripts/HttpServer.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Scripts/HttpServer.cs rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Scripts/HttpServer.cs diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Scripts/HttpServer.cs.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Scripts/HttpServer.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Scripts/HttpServer.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Scripts/HttpServer.cs.meta diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Scripts/UnityBrowserBridge.cs b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Scripts/UnityBrowserBridge.cs similarity index 99% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Scripts/UnityBrowserBridge.cs rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Scripts/UnityBrowserBridge.cs index e303a7e9..6aa9b2f4 100644 --- a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Scripts/UnityBrowserBridge.cs +++ b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Scripts/UnityBrowserBridge.cs @@ -3,6 +3,7 @@ using System.IO; using UnityEngine; using UnityEditor; +#if UNITY_EDITOR using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Edge; @@ -17,7 +18,6 @@ namespace UBB /// public class UnityBrowserBridge : MonoBehaviour { -#if UNITY_EDITOR /// /// Browser selection. @@ -407,6 +407,6 @@ public T CallJs(string jsFunctionName, string callbackName = null, string gam return ExecuteJS(jsCall); } -# endif } -} \ No newline at end of file +} +# endif diff --git a/Assets/PlayroomKit/dependencies/UnityBrowserBridge/Scripts/UnityBrowserBridge.cs.meta b/Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Scripts/UnityBrowserBridge.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/UnityBrowserBridge/Scripts/UnityBrowserBridge.cs.meta rename to Assets/PlayroomKit/Editor/dependencies/UnityBrowserBridge/Scripts/UnityBrowserBridge.cs.meta diff --git a/Assets/PlayroomKit/Editor/node_modules.meta b/Assets/PlayroomKit/Editor/node_modules.meta new file mode 100644 index 00000000..51851cb5 --- /dev/null +++ b/Assets/PlayroomKit/Editor/node_modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9f7efd61e470aea4fa407527478b42f6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PlayroomKit/Editor/package.json b/Assets/PlayroomKit/Editor/package.json new file mode 100644 index 00000000..bee959c1 --- /dev/null +++ b/Assets/PlayroomKit/Editor/package.json @@ -0,0 +1,23 @@ +{ + "name": "playroom-unity", + "version": "0.0.0", + "description": "This SDK is a wrapper over PlayroomKit JS. Currently, it only supports WebGL exported games. See [PlayroomKit Unity docs](https://docs.joinplayroom.com/usage/unity) for more information.", + "main": "index.js", + "type": "module", + "devDependencies": { + "vite": "^5.2.8", + "vite-plugin-static-copy": "^1.0.2" + }, + "scripts": { + "postinstall": "npm run build", + "build": "vite build --emptyOutDir" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "playroomkit": "0.0.87", + "react": "^18.2.0", + "react-dom": "^18.2.0" + } +} diff --git a/Assets/PlayroomKit/Editor/package.json.meta b/Assets/PlayroomKit/Editor/package.json.meta new file mode 100644 index 00000000..efa950b8 --- /dev/null +++ b/Assets/PlayroomKit/Editor/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 83fed7027fde44d63ad72ae1c59dc095 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PlayroomKit/src.meta b/Assets/PlayroomKit/Editor/src.meta similarity index 100% rename from Assets/PlayroomKit/src.meta rename to Assets/PlayroomKit/Editor/src.meta diff --git a/Assets/PlayroomKit/src/frameworks.js b/Assets/PlayroomKit/Editor/src/frameworks.js similarity index 100% rename from Assets/PlayroomKit/src/frameworks.js rename to Assets/PlayroomKit/Editor/src/frameworks.js diff --git a/Assets/PlayroomKit/src/frameworks.js.meta b/Assets/PlayroomKit/Editor/src/frameworks.js.meta similarity index 100% rename from Assets/PlayroomKit/src/frameworks.js.meta rename to Assets/PlayroomKit/Editor/src/frameworks.js.meta diff --git a/Assets/PlayroomKit/src/index.js b/Assets/PlayroomKit/Editor/src/index.js similarity index 100% rename from Assets/PlayroomKit/src/index.js rename to Assets/PlayroomKit/Editor/src/index.js diff --git a/Assets/PlayroomKit/src/index.js.meta b/Assets/PlayroomKit/Editor/src/index.js.meta similarity index 100% rename from Assets/PlayroomKit/src/index.js.meta rename to Assets/PlayroomKit/Editor/src/index.js.meta diff --git a/Assets/PlayroomKit/vite.config.js b/Assets/PlayroomKit/Editor/vite.config.js similarity index 94% rename from Assets/PlayroomKit/vite.config.js rename to Assets/PlayroomKit/Editor/vite.config.js index 09d13333..35522f0e 100644 --- a/Assets/PlayroomKit/vite.config.js +++ b/Assets/PlayroomKit/Editor/vite.config.js @@ -32,7 +32,7 @@ export default defineConfig({ fileName: (format) => `PlayroomFrameworks.jspre`, formats: ['umd'] }, - outDir: '../../Assets/Plugins/Playroom', + outDir: '../../../Assets/Plugins/Playroom', minify: false, rollupOptions: {} }, diff --git a/Assets/PlayroomKit/vite.config.js.meta b/Assets/PlayroomKit/Editor/vite.config.js.meta similarity index 100% rename from Assets/PlayroomKit/vite.config.js.meta rename to Assets/PlayroomKit/Editor/vite.config.js.meta diff --git a/Assets/PlayroomKit/Examples/Scenes.meta b/Assets/PlayroomKit/Examples/Scenes.meta new file mode 100644 index 00000000..0a1a7329 --- /dev/null +++ b/Assets/PlayroomKit/Examples/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f74a56387154f29459cc5e86602e99f3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PlayroomKit/Examples/2d-platformer.meta b/Assets/PlayroomKit/Examples/Scenes/2d-platformer.meta similarity index 77% rename from Assets/PlayroomKit/Examples/2d-platformer.meta rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer.meta index 6e57abeb..b068cb39 100644 --- a/Assets/PlayroomKit/Examples/2d-platformer.meta +++ b/Assets/PlayroomKit/Examples/Scenes/2d-platformer.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: afbe9636661446c4387c0430c40ca4ea +guid: c9768ba512532a44491bcc9378e908d5 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/PlayroomKit/Examples/2d-platformer/2d-platformer.unity b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/2d-platformer.unity similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/2d-platformer.unity rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/2d-platformer.unity diff --git a/Assets/PlayroomKit/Examples/2d-platformer/2d-platformer.unity.meta b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/2d-platformer.unity.meta similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/2d-platformer.unity.meta rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/2d-platformer.unity.meta diff --git a/Assets/PlayroomKit/Examples/2d-platformer/fonts.meta b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/fonts.meta similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/fonts.meta rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/fonts.meta diff --git a/Assets/PlayroomKit/Examples/2d-platformer/fonts/LiberationSans SDF.asset b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/fonts/LiberationSans SDF.asset similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/fonts/LiberationSans SDF.asset rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/fonts/LiberationSans SDF.asset diff --git a/Assets/PlayroomKit/Examples/2d-platformer/fonts/LiberationSans SDF.asset.meta b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/fonts/LiberationSans SDF.asset.meta similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/fonts/LiberationSans SDF.asset.meta rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/fonts/LiberationSans SDF.asset.meta diff --git a/Assets/PlayroomKit/Examples/2d-platformer/prefabs.meta b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/prefabs.meta similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/prefabs.meta rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/prefabs.meta diff --git a/Assets/PlayroomKit/Examples/2d-platformer/prefabs/Bullet.prefab b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/prefabs/Bullet.prefab similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/prefabs/Bullet.prefab rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/prefabs/Bullet.prefab diff --git a/Assets/PlayroomKit/Examples/2d-platformer/prefabs/Bullet.prefab.meta b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/prefabs/Bullet.prefab.meta similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/prefabs/Bullet.prefab.meta rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/prefabs/Bullet.prefab.meta diff --git a/Assets/PlayroomKit/Examples/2d-platformer/prefabs/Player.prefab b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/prefabs/Player.prefab similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/prefabs/Player.prefab rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/prefabs/Player.prefab diff --git a/Assets/PlayroomKit/Examples/2d-platformer/prefabs/Player.prefab.meta b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/prefabs/Player.prefab.meta similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/prefabs/Player.prefab.meta rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/prefabs/Player.prefab.meta diff --git a/Assets/PlayroomKit/Examples/2d-platformer/scripts.meta b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/scripts.meta similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/scripts.meta rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/scripts.meta diff --git a/Assets/PlayroomKit/Examples/2d-platformer/scripts/GameManager2d.cs b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/scripts/GameManager2d.cs similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/scripts/GameManager2d.cs rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/scripts/GameManager2d.cs diff --git a/Assets/PlayroomKit/Examples/2d-platformer/scripts/GameManager2d.cs.meta b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/scripts/GameManager2d.cs.meta similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/scripts/GameManager2d.cs.meta rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/scripts/GameManager2d.cs.meta diff --git a/Assets/PlayroomKit/Examples/2d-platformer/scripts/PlayerController2d.cs b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/scripts/PlayerController2d.cs similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/scripts/PlayerController2d.cs rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/scripts/PlayerController2d.cs diff --git a/Assets/PlayroomKit/Examples/2d-platformer/scripts/PlayerController2d.cs.meta b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/scripts/PlayerController2d.cs.meta similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/scripts/PlayerController2d.cs.meta rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/scripts/PlayerController2d.cs.meta diff --git a/Assets/PlayroomKit/Examples/2d-platformer/sprites.meta b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/sprites.meta similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/sprites.meta rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/sprites.meta diff --git a/Assets/PlayroomKit/Examples/2d-platformer/sprites/Circle.png b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/sprites/Circle.png similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/sprites/Circle.png rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/sprites/Circle.png diff --git a/Assets/PlayroomKit/Examples/2d-platformer/sprites/Circle.png.meta b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/sprites/Circle.png.meta similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/sprites/Circle.png.meta rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/sprites/Circle.png.meta diff --git a/Assets/PlayroomKit/Examples/2d-platformer/sprites/Square.png b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/sprites/Square.png similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/sprites/Square.png rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/sprites/Square.png diff --git a/Assets/PlayroomKit/Examples/2d-platformer/sprites/Square.png.meta b/Assets/PlayroomKit/Examples/Scenes/2d-platformer/sprites/Square.png.meta similarity index 100% rename from Assets/PlayroomKit/Examples/2d-platformer/sprites/Square.png.meta rename to Assets/PlayroomKit/Examples/Scenes/2d-platformer/sprites/Square.png.meta diff --git a/Assets/PlayroomKit/Examples/discord-activity.meta b/Assets/PlayroomKit/Examples/Scenes/discord-activity.meta similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity.meta rename to Assets/PlayroomKit/Examples/Scenes/discord-activity.meta diff --git a/Assets/PlayroomKit/Examples/discord-activity/Models.meta b/Assets/PlayroomKit/Examples/Scenes/discord-activity/Models.meta similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/Models.meta rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/Models.meta diff --git a/Assets/PlayroomKit/Examples/discord-activity/Models/Hat.fbx b/Assets/PlayroomKit/Examples/Scenes/discord-activity/Models/Hat.fbx similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/Models/Hat.fbx rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/Models/Hat.fbx diff --git a/Assets/PlayroomKit/Examples/discord-activity/Models/Hat.fbx.meta b/Assets/PlayroomKit/Examples/Scenes/discord-activity/Models/Hat.fbx.meta similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/Models/Hat.fbx.meta rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/Models/Hat.fbx.meta diff --git a/Assets/PlayroomKit/Examples/discord-activity/discord-activity.unity b/Assets/PlayroomKit/Examples/Scenes/discord-activity/discord-activity.unity similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/discord-activity.unity rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/discord-activity.unity diff --git a/Assets/PlayroomKit/Examples/discord-activity/discord-activity.unity.meta b/Assets/PlayroomKit/Examples/Scenes/discord-activity/discord-activity.unity.meta similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/discord-activity.unity.meta rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/discord-activity.unity.meta diff --git a/Assets/PlayroomKit/Examples/discord-activity/materials.meta b/Assets/PlayroomKit/Examples/Scenes/discord-activity/materials.meta similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/materials.meta rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/materials.meta diff --git a/Assets/PlayroomKit/Examples/discord-activity/materials/Base.mat b/Assets/PlayroomKit/Examples/Scenes/discord-activity/materials/Base.mat similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/materials/Base.mat rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/materials/Base.mat diff --git a/Assets/PlayroomKit/Examples/discord-activity/materials/Base.mat.meta b/Assets/PlayroomKit/Examples/Scenes/discord-activity/materials/Base.mat.meta similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/materials/Base.mat.meta rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/materials/Base.mat.meta diff --git a/Assets/PlayroomKit/Examples/discord-activity/materials/player.mat b/Assets/PlayroomKit/Examples/Scenes/discord-activity/materials/player.mat similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/materials/player.mat rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/materials/player.mat diff --git a/Assets/PlayroomKit/Examples/discord-activity/materials/player.mat.meta b/Assets/PlayroomKit/Examples/Scenes/discord-activity/materials/player.mat.meta similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/materials/player.mat.meta rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/materials/player.mat.meta diff --git a/Assets/PlayroomKit/Examples/discord-activity/prefabs.meta b/Assets/PlayroomKit/Examples/Scenes/discord-activity/prefabs.meta similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/prefabs.meta rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/prefabs.meta diff --git a/Assets/PlayroomKit/Examples/discord-activity/prefabs/Bean.prefab b/Assets/PlayroomKit/Examples/Scenes/discord-activity/prefabs/Bean.prefab similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/prefabs/Bean.prefab rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/prefabs/Bean.prefab diff --git a/Assets/PlayroomKit/Examples/discord-activity/prefabs/Bean.prefab.meta b/Assets/PlayroomKit/Examples/Scenes/discord-activity/prefabs/Bean.prefab.meta similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/prefabs/Bean.prefab.meta rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/prefabs/Bean.prefab.meta diff --git a/Assets/PlayroomKit/Examples/discord-activity/prefabs/Ground.prefab b/Assets/PlayroomKit/Examples/Scenes/discord-activity/prefabs/Ground.prefab similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/prefabs/Ground.prefab rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/prefabs/Ground.prefab diff --git a/Assets/PlayroomKit/Examples/discord-activity/prefabs/Ground.prefab.meta b/Assets/PlayroomKit/Examples/Scenes/discord-activity/prefabs/Ground.prefab.meta similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/prefabs/Ground.prefab.meta rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/prefabs/Ground.prefab.meta diff --git a/Assets/PlayroomKit/Examples/discord-activity/readme.md b/Assets/PlayroomKit/Examples/Scenes/discord-activity/readme.md similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/readme.md rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/readme.md diff --git a/Assets/PlayroomKit/Examples/discord-activity/readme.md.meta b/Assets/PlayroomKit/Examples/Scenes/discord-activity/readme.md.meta similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/readme.md.meta rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/readme.md.meta diff --git a/Assets/PlayroomKit/Examples/discord-activity/scripts.meta b/Assets/PlayroomKit/Examples/Scenes/discord-activity/scripts.meta similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/scripts.meta rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/scripts.meta diff --git a/Assets/PlayroomKit/Examples/discord-activity/scripts/GameManagerIsometric.cs b/Assets/PlayroomKit/Examples/Scenes/discord-activity/scripts/GameManagerIsometric.cs similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/scripts/GameManagerIsometric.cs rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/scripts/GameManagerIsometric.cs diff --git a/Assets/PlayroomKit/Examples/discord-activity/scripts/GameManagerIsometric.cs.meta b/Assets/PlayroomKit/Examples/Scenes/discord-activity/scripts/GameManagerIsometric.cs.meta similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/scripts/GameManagerIsometric.cs.meta rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/scripts/GameManagerIsometric.cs.meta diff --git a/Assets/PlayroomKit/Examples/discord-activity/scripts/IsometricPlayerController.cs b/Assets/PlayroomKit/Examples/Scenes/discord-activity/scripts/IsometricPlayerController.cs similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/scripts/IsometricPlayerController.cs rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/scripts/IsometricPlayerController.cs diff --git a/Assets/PlayroomKit/Examples/discord-activity/scripts/IsometricPlayerController.cs.meta b/Assets/PlayroomKit/Examples/Scenes/discord-activity/scripts/IsometricPlayerController.cs.meta similarity index 100% rename from Assets/PlayroomKit/Examples/discord-activity/scripts/IsometricPlayerController.cs.meta rename to Assets/PlayroomKit/Examples/Scenes/discord-activity/scripts/IsometricPlayerController.cs.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase/materials.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase/materials.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/materials.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/materials.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase/materials/Base.mat b/Assets/PlayroomKit/Examples/Scenes/package-showcase/materials/Base.mat similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/materials/Base.mat rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/materials/Base.mat diff --git a/Assets/PlayroomKit/Examples/package-showcase/materials/Base.mat.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase/materials/Base.mat.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/materials/Base.mat.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/materials/Base.mat.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase/materials/player.mat b/Assets/PlayroomKit/Examples/Scenes/package-showcase/materials/player.mat similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/materials/player.mat rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/materials/player.mat diff --git a/Assets/PlayroomKit/Examples/package-showcase/materials/player.mat.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase/materials/player.mat.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/materials/player.mat.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/materials/player.mat.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase/models.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase/models.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/models.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/models.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase/models/Hat.fbx b/Assets/PlayroomKit/Examples/Scenes/package-showcase/models/Hat.fbx similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/models/Hat.fbx rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/models/Hat.fbx diff --git a/Assets/PlayroomKit/Examples/package-showcase/models/Hat.fbx.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase/models/Hat.fbx.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/models/Hat.fbx.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/models/Hat.fbx.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase/prefabs.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/prefabs.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase/prefabs/BeanDemo.prefab b/Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/BeanDemo.prefab similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/prefabs/BeanDemo.prefab rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/BeanDemo.prefab diff --git a/Assets/PlayroomKit/Examples/package-showcase/prefabs/BeanDemo.prefab.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/BeanDemo.prefab.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/prefabs/BeanDemo.prefab.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/BeanDemo.prefab.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase/prefabs/Black.mat b/Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/Black.mat similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/prefabs/Black.mat rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/Black.mat diff --git a/Assets/PlayroomKit/Examples/package-showcase/prefabs/Black.mat.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/Black.mat.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/prefabs/Black.mat.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/Black.mat.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase/prefabs/Bullet.prefab b/Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/Bullet.prefab similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/prefabs/Bullet.prefab rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/Bullet.prefab diff --git a/Assets/PlayroomKit/Examples/package-showcase/prefabs/Bullet.prefab.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/Bullet.prefab.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/prefabs/Bullet.prefab.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/Bullet.prefab.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase/prefabs/Ground.prefab b/Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/Ground.prefab similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/prefabs/Ground.prefab rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/Ground.prefab diff --git a/Assets/PlayroomKit/Examples/package-showcase/prefabs/Ground.prefab.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/Ground.prefab.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/prefabs/Ground.prefab.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/prefabs/Ground.prefab.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase/scripts.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase/scripts.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/scripts.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/scripts.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase/scripts/GameManagerDemo.cs b/Assets/PlayroomKit/Examples/Scenes/package-showcase/scripts/GameManagerDemo.cs similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/scripts/GameManagerDemo.cs rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/scripts/GameManagerDemo.cs diff --git a/Assets/PlayroomKit/Examples/package-showcase/scripts/GameManagerDemo.cs.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase/scripts/GameManagerDemo.cs.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/scripts/GameManagerDemo.cs.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/scripts/GameManagerDemo.cs.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase/scripts/Laser.cs b/Assets/PlayroomKit/Examples/Scenes/package-showcase/scripts/Laser.cs similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/scripts/Laser.cs rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/scripts/Laser.cs diff --git a/Assets/PlayroomKit/Examples/package-showcase/scripts/Laser.cs.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase/scripts/Laser.cs.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/scripts/Laser.cs.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/scripts/Laser.cs.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase/scripts/PlayerController.cs b/Assets/PlayroomKit/Examples/Scenes/package-showcase/scripts/PlayerController.cs similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/scripts/PlayerController.cs rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/scripts/PlayerController.cs diff --git a/Assets/PlayroomKit/Examples/package-showcase/scripts/PlayerController.cs.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase/scripts/PlayerController.cs.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/scripts/PlayerController.cs.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/scripts/PlayerController.cs.meta diff --git a/Assets/PlayroomKit/Examples/package-showcase/showcase.unity b/Assets/PlayroomKit/Examples/Scenes/package-showcase/showcase.unity similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/showcase.unity rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/showcase.unity diff --git a/Assets/PlayroomKit/Examples/package-showcase/showcase.unity.meta b/Assets/PlayroomKit/Examples/Scenes/package-showcase/showcase.unity.meta similarity index 100% rename from Assets/PlayroomKit/Examples/package-showcase/showcase.unity.meta rename to Assets/PlayroomKit/Examples/Scenes/package-showcase/showcase.unity.meta diff --git a/Assets/PlayroomKit/Runtime.meta b/Assets/PlayroomKit/Runtime.meta new file mode 100644 index 00000000..76eb58a8 --- /dev/null +++ b/Assets/PlayroomKit/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5bba5cbaeaeb6cf418f9a90d3cccd06b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PlayroomKit/Runtime/dependencies.meta b/Assets/PlayroomKit/Runtime/dependencies.meta new file mode 100644 index 00000000..770f632b --- /dev/null +++ b/Assets/PlayroomKit/Runtime/dependencies.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 97c8eb188e4e5b34d98d2b29768974ff +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PlayroomKit/dependencies/SimpleJSON.meta b/Assets/PlayroomKit/Runtime/dependencies/SimpleJSON.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/SimpleJSON.meta rename to Assets/PlayroomKit/Runtime/dependencies/SimpleJSON.meta diff --git a/Assets/PlayroomKit/dependencies/SimpleJSON/Changelog.txt b/Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/Changelog.txt similarity index 100% rename from Assets/PlayroomKit/dependencies/SimpleJSON/Changelog.txt rename to Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/Changelog.txt diff --git a/Assets/PlayroomKit/dependencies/SimpleJSON/Changelog.txt.meta b/Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/Changelog.txt.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/SimpleJSON/Changelog.txt.meta rename to Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/Changelog.txt.meta diff --git a/Assets/PlayroomKit/dependencies/SimpleJSON/LICENSE b/Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/LICENSE similarity index 100% rename from Assets/PlayroomKit/dependencies/SimpleJSON/LICENSE rename to Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/LICENSE diff --git a/Assets/PlayroomKit/dependencies/SimpleJSON/LICENSE.meta b/Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/LICENSE.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/SimpleJSON/LICENSE.meta rename to Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/LICENSE.meta diff --git a/Assets/PlayroomKit/dependencies/SimpleJSON/README b/Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/README similarity index 100% rename from Assets/PlayroomKit/dependencies/SimpleJSON/README rename to Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/README diff --git a/Assets/PlayroomKit/dependencies/SimpleJSON/README.meta b/Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/README.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/SimpleJSON/README.meta rename to Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/README.meta diff --git a/Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSON.cs b/Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSON.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSON.cs rename to Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSON.cs diff --git a/Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSON.cs.meta b/Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSON.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSON.cs.meta rename to Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSON.cs.meta diff --git a/Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSONBinary.cs b/Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSONBinary.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSONBinary.cs rename to Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSONBinary.cs diff --git a/Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSONBinary.cs.meta b/Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSONBinary.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSONBinary.cs.meta rename to Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSONBinary.cs.meta diff --git a/Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSONDotNetTypes.cs b/Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSONDotNetTypes.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSONDotNetTypes.cs rename to Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSONDotNetTypes.cs diff --git a/Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSONDotNetTypes.cs.meta b/Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSONDotNetTypes.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSONDotNetTypes.cs.meta rename to Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSONDotNetTypes.cs.meta diff --git a/Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSONUnity.cs b/Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSONUnity.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSONUnity.cs rename to Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSONUnity.cs diff --git a/Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSONUnity.cs.meta b/Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSONUnity.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/SimpleJSON/SimpleJSONUnity.cs.meta rename to Assets/PlayroomKit/Runtime/dependencies/SimpleJSON/SimpleJSONUnity.cs.meta diff --git a/Assets/PlayroomKit/dependencies/fonts.meta b/Assets/PlayroomKit/Runtime/dependencies/fonts.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/fonts.meta rename to Assets/PlayroomKit/Runtime/dependencies/fonts.meta diff --git a/Assets/PlayroomKit/dependencies/fonts/JetBrainsMono-Medium SDF.asset b/Assets/PlayroomKit/Runtime/dependencies/fonts/JetBrainsMono-Medium SDF.asset similarity index 100% rename from Assets/PlayroomKit/dependencies/fonts/JetBrainsMono-Medium SDF.asset rename to Assets/PlayroomKit/Runtime/dependencies/fonts/JetBrainsMono-Medium SDF.asset diff --git a/Assets/PlayroomKit/dependencies/fonts/JetBrainsMono-Medium SDF.asset.meta b/Assets/PlayroomKit/Runtime/dependencies/fonts/JetBrainsMono-Medium SDF.asset.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/fonts/JetBrainsMono-Medium SDF.asset.meta rename to Assets/PlayroomKit/Runtime/dependencies/fonts/JetBrainsMono-Medium SDF.asset.meta diff --git a/Assets/PlayroomKit/dependencies/fonts/JetBrainsMono-Medium.ttf b/Assets/PlayroomKit/Runtime/dependencies/fonts/JetBrainsMono-Medium.ttf similarity index 100% rename from Assets/PlayroomKit/dependencies/fonts/JetBrainsMono-Medium.ttf rename to Assets/PlayroomKit/Runtime/dependencies/fonts/JetBrainsMono-Medium.ttf diff --git a/Assets/PlayroomKit/dependencies/fonts/JetBrainsMono-Medium.ttf.meta b/Assets/PlayroomKit/Runtime/dependencies/fonts/JetBrainsMono-Medium.ttf.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/fonts/JetBrainsMono-Medium.ttf.meta rename to Assets/PlayroomKit/Runtime/dependencies/fonts/JetBrainsMono-Medium.ttf.meta diff --git a/Assets/PlayroomKit/modules.meta b/Assets/PlayroomKit/Runtime/modules.meta similarity index 100% rename from Assets/PlayroomKit/modules.meta rename to Assets/PlayroomKit/Runtime/modules.meta diff --git a/Assets/PlayroomKit/modules/Discord.meta b/Assets/PlayroomKit/Runtime/modules/Discord.meta similarity index 100% rename from Assets/PlayroomKit/modules/Discord.meta rename to Assets/PlayroomKit/Runtime/modules/Discord.meta diff --git a/Assets/PlayroomKit/modules/Discord/DiscordEntitlement.cs b/Assets/PlayroomKit/Runtime/modules/Discord/DiscordEntitlement.cs similarity index 100% rename from Assets/PlayroomKit/modules/Discord/DiscordEntitlement.cs rename to Assets/PlayroomKit/Runtime/modules/Discord/DiscordEntitlement.cs diff --git a/Assets/PlayroomKit/modules/Discord/DiscordEntitlement.cs.meta b/Assets/PlayroomKit/Runtime/modules/Discord/DiscordEntitlement.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Discord/DiscordEntitlement.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Discord/DiscordEntitlement.cs.meta diff --git a/Assets/PlayroomKit/modules/Discord/DiscordSkus.cs b/Assets/PlayroomKit/Runtime/modules/Discord/DiscordSkus.cs similarity index 100% rename from Assets/PlayroomKit/modules/Discord/DiscordSkus.cs rename to Assets/PlayroomKit/Runtime/modules/Discord/DiscordSkus.cs diff --git a/Assets/PlayroomKit/modules/Discord/DiscordSkus.cs.meta b/Assets/PlayroomKit/Runtime/modules/Discord/DiscordSkus.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Discord/DiscordSkus.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Discord/DiscordSkus.cs.meta diff --git a/Assets/PlayroomKit/modules/Discord/SDKEvents.cs b/Assets/PlayroomKit/Runtime/modules/Discord/SDKEvents.cs similarity index 100% rename from Assets/PlayroomKit/modules/Discord/SDKEvents.cs rename to Assets/PlayroomKit/Runtime/modules/Discord/SDKEvents.cs diff --git a/Assets/PlayroomKit/modules/Discord/SDKEvents.cs.meta b/Assets/PlayroomKit/Runtime/modules/Discord/SDKEvents.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Discord/SDKEvents.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Discord/SDKEvents.cs.meta diff --git a/Assets/PlayroomKit/modules/Headers.cs b/Assets/PlayroomKit/Runtime/modules/Headers.cs similarity index 100% rename from Assets/PlayroomKit/modules/Headers.cs rename to Assets/PlayroomKit/Runtime/modules/Headers.cs diff --git a/Assets/PlayroomKit/modules/Headers.cs.meta b/Assets/PlayroomKit/Runtime/modules/Headers.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Headers.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Headers.cs.meta diff --git a/Assets/PlayroomKit/modules/Helpers.meta b/Assets/PlayroomKit/Runtime/modules/Helpers.meta similarity index 100% rename from Assets/PlayroomKit/modules/Helpers.meta rename to Assets/PlayroomKit/Runtime/modules/Helpers.meta diff --git a/Assets/PlayroomKit/modules/Helpers/CallbackManager.cs b/Assets/PlayroomKit/Runtime/modules/Helpers/CallbackManager.cs similarity index 100% rename from Assets/PlayroomKit/modules/Helpers/CallbackManager.cs rename to Assets/PlayroomKit/Runtime/modules/Helpers/CallbackManager.cs diff --git a/Assets/PlayroomKit/modules/Helpers/CallbackManager.cs.meta b/Assets/PlayroomKit/Runtime/modules/Helpers/CallbackManager.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Helpers/CallbackManager.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Helpers/CallbackManager.cs.meta diff --git a/Assets/PlayroomKit/modules/Helpers/CommandManager.cs b/Assets/PlayroomKit/Runtime/modules/Helpers/CommandManager.cs similarity index 99% rename from Assets/PlayroomKit/modules/Helpers/CommandManager.cs rename to Assets/PlayroomKit/Runtime/modules/Helpers/CommandManager.cs index 21fadf6a..75fd7f46 100644 --- a/Assets/PlayroomKit/modules/Helpers/CommandManager.cs +++ b/Assets/PlayroomKit/Runtime/modules/Helpers/CommandManager.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using CI.PowerConsole; -using OpenQA.Selenium; using Playroom; using UnityEngine; using LogLevel = CI.PowerConsole.LogLevel; diff --git a/Assets/PlayroomKit/modules/Helpers/CommandManager.cs.meta b/Assets/PlayroomKit/Runtime/modules/Helpers/CommandManager.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Helpers/CommandManager.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Helpers/CommandManager.cs.meta diff --git a/Assets/PlayroomKit/modules/Helpers/DebugLogger.cs b/Assets/PlayroomKit/Runtime/modules/Helpers/DebugLogger.cs similarity index 100% rename from Assets/PlayroomKit/modules/Helpers/DebugLogger.cs rename to Assets/PlayroomKit/Runtime/modules/Helpers/DebugLogger.cs diff --git a/Assets/PlayroomKit/modules/Helpers/DebugLogger.cs.meta b/Assets/PlayroomKit/Runtime/modules/Helpers/DebugLogger.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Helpers/DebugLogger.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Helpers/DebugLogger.cs.meta diff --git a/Assets/PlayroomKit/modules/Helpers/Helpers.cs b/Assets/PlayroomKit/Runtime/modules/Helpers/Helpers.cs similarity index 100% rename from Assets/PlayroomKit/modules/Helpers/Helpers.cs rename to Assets/PlayroomKit/Runtime/modules/Helpers/Helpers.cs diff --git a/Assets/PlayroomKit/modules/Helpers/Helpers.cs.meta b/Assets/PlayroomKit/Runtime/modules/Helpers/Helpers.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Helpers/Helpers.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Helpers/Helpers.cs.meta diff --git a/Assets/PlayroomKit/modules/Helpers/InternalFunctions.meta b/Assets/PlayroomKit/Runtime/modules/Helpers/InternalFunctions.meta similarity index 100% rename from Assets/PlayroomKit/modules/Helpers/InternalFunctions.meta rename to Assets/PlayroomKit/Runtime/modules/Helpers/InternalFunctions.meta diff --git a/Assets/PlayroomKit/modules/Helpers/InternalFunctions/IInternalFunctions.cs b/Assets/PlayroomKit/Runtime/modules/Helpers/InternalFunctions/IInternalFunctions.cs similarity index 100% rename from Assets/PlayroomKit/modules/Helpers/InternalFunctions/IInternalFunctions.cs rename to Assets/PlayroomKit/Runtime/modules/Helpers/InternalFunctions/IInternalFunctions.cs diff --git a/Assets/PlayroomKit/modules/Helpers/InternalFunctions/IInternalFunctions.cs.meta b/Assets/PlayroomKit/Runtime/modules/Helpers/InternalFunctions/IInternalFunctions.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Helpers/InternalFunctions/IInternalFunctions.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Helpers/InternalFunctions/IInternalFunctions.cs.meta diff --git a/Assets/PlayroomKit/modules/Helpers/InternalFunctions/InterlopWrapper.cs b/Assets/PlayroomKit/Runtime/modules/Helpers/InternalFunctions/InterlopWrapper.cs similarity index 100% rename from Assets/PlayroomKit/modules/Helpers/InternalFunctions/InterlopWrapper.cs rename to Assets/PlayroomKit/Runtime/modules/Helpers/InternalFunctions/InterlopWrapper.cs diff --git a/Assets/PlayroomKit/modules/Helpers/InternalFunctions/InterlopWrapper.cs.meta b/Assets/PlayroomKit/Runtime/modules/Helpers/InternalFunctions/InterlopWrapper.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Helpers/InternalFunctions/InterlopWrapper.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Helpers/InternalFunctions/InterlopWrapper.cs.meta diff --git a/Assets/PlayroomKit/modules/Helpers/TurnData.cs b/Assets/PlayroomKit/Runtime/modules/Helpers/TurnData.cs similarity index 100% rename from Assets/PlayroomKit/modules/Helpers/TurnData.cs rename to Assets/PlayroomKit/Runtime/modules/Helpers/TurnData.cs diff --git a/Assets/PlayroomKit/modules/Helpers/TurnData.cs.meta b/Assets/PlayroomKit/Runtime/modules/Helpers/TurnData.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Helpers/TurnData.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Helpers/TurnData.cs.meta diff --git a/Assets/PlayroomKit/modules/Interfaces.meta b/Assets/PlayroomKit/Runtime/modules/Interfaces.meta similarity index 100% rename from Assets/PlayroomKit/modules/Interfaces.meta rename to Assets/PlayroomKit/Runtime/modules/Interfaces.meta diff --git a/Assets/PlayroomKit/modules/Interfaces/IPlayerBase.cs b/Assets/PlayroomKit/Runtime/modules/Interfaces/IPlayerBase.cs similarity index 100% rename from Assets/PlayroomKit/modules/Interfaces/IPlayerBase.cs rename to Assets/PlayroomKit/Runtime/modules/Interfaces/IPlayerBase.cs diff --git a/Assets/PlayroomKit/modules/Interfaces/IPlayerBase.cs.meta b/Assets/PlayroomKit/Runtime/modules/Interfaces/IPlayerBase.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Interfaces/IPlayerBase.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Interfaces/IPlayerBase.cs.meta diff --git a/Assets/PlayroomKit/modules/Interfaces/IPlayroomBase.cs b/Assets/PlayroomKit/Runtime/modules/Interfaces/IPlayroomBase.cs similarity index 100% rename from Assets/PlayroomKit/modules/Interfaces/IPlayroomBase.cs rename to Assets/PlayroomKit/Runtime/modules/Interfaces/IPlayroomBase.cs diff --git a/Assets/PlayroomKit/modules/Interfaces/IPlayroomBase.cs.meta b/Assets/PlayroomKit/Runtime/modules/Interfaces/IPlayroomBase.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Interfaces/IPlayroomBase.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Interfaces/IPlayroomBase.cs.meta diff --git a/Assets/PlayroomKit/modules/Interfaces/IPlayroomBuildExtensions.cs b/Assets/PlayroomKit/Runtime/modules/Interfaces/IPlayroomBuildExtensions.cs similarity index 100% rename from Assets/PlayroomKit/modules/Interfaces/IPlayroomBuildExtensions.cs rename to Assets/PlayroomKit/Runtime/modules/Interfaces/IPlayroomBuildExtensions.cs diff --git a/Assets/PlayroomKit/modules/Interfaces/IPlayroomBuildExtensions.cs.meta b/Assets/PlayroomKit/Runtime/modules/Interfaces/IPlayroomBuildExtensions.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Interfaces/IPlayroomBuildExtensions.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Interfaces/IPlayroomBuildExtensions.cs.meta diff --git a/Assets/PlayroomKit/modules/Interfaces/IRPC.cs b/Assets/PlayroomKit/Runtime/modules/Interfaces/IRPC.cs similarity index 100% rename from Assets/PlayroomKit/modules/Interfaces/IRPC.cs rename to Assets/PlayroomKit/Runtime/modules/Interfaces/IRPC.cs diff --git a/Assets/PlayroomKit/modules/Interfaces/IRPC.cs.meta b/Assets/PlayroomKit/Runtime/modules/Interfaces/IRPC.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Interfaces/IRPC.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Interfaces/IRPC.cs.meta diff --git a/Assets/PlayroomKit/modules/Options.meta b/Assets/PlayroomKit/Runtime/modules/Options.meta similarity index 100% rename from Assets/PlayroomKit/modules/Options.meta rename to Assets/PlayroomKit/Runtime/modules/Options.meta diff --git a/Assets/PlayroomKit/modules/Options/ButtonOptions.cs b/Assets/PlayroomKit/Runtime/modules/Options/ButtonOptions.cs similarity index 100% rename from Assets/PlayroomKit/modules/Options/ButtonOptions.cs rename to Assets/PlayroomKit/Runtime/modules/Options/ButtonOptions.cs diff --git a/Assets/PlayroomKit/modules/Options/ButtonOptions.cs.meta b/Assets/PlayroomKit/Runtime/modules/Options/ButtonOptions.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Options/ButtonOptions.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Options/ButtonOptions.cs.meta diff --git a/Assets/PlayroomKit/modules/Options/Dpad.cs b/Assets/PlayroomKit/Runtime/modules/Options/Dpad.cs similarity index 100% rename from Assets/PlayroomKit/modules/Options/Dpad.cs rename to Assets/PlayroomKit/Runtime/modules/Options/Dpad.cs diff --git a/Assets/PlayroomKit/modules/Options/Dpad.cs.meta b/Assets/PlayroomKit/Runtime/modules/Options/Dpad.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Options/Dpad.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Options/Dpad.cs.meta diff --git a/Assets/PlayroomKit/modules/Options/InitOptions.cs b/Assets/PlayroomKit/Runtime/modules/Options/InitOptions.cs similarity index 100% rename from Assets/PlayroomKit/modules/Options/InitOptions.cs rename to Assets/PlayroomKit/Runtime/modules/Options/InitOptions.cs diff --git a/Assets/PlayroomKit/modules/Options/InitOptions.cs.meta b/Assets/PlayroomKit/Runtime/modules/Options/InitOptions.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Options/InitOptions.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Options/InitOptions.cs.meta diff --git a/Assets/PlayroomKit/modules/Options/JoystickOptions.cs b/Assets/PlayroomKit/Runtime/modules/Options/JoystickOptions.cs similarity index 100% rename from Assets/PlayroomKit/modules/Options/JoystickOptions.cs rename to Assets/PlayroomKit/Runtime/modules/Options/JoystickOptions.cs diff --git a/Assets/PlayroomKit/modules/Options/JoystickOptions.cs.meta b/Assets/PlayroomKit/Runtime/modules/Options/JoystickOptions.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Options/JoystickOptions.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Options/JoystickOptions.cs.meta diff --git a/Assets/PlayroomKit/modules/Options/MatchMakingOptions.cs b/Assets/PlayroomKit/Runtime/modules/Options/MatchMakingOptions.cs similarity index 100% rename from Assets/PlayroomKit/modules/Options/MatchMakingOptions.cs rename to Assets/PlayroomKit/Runtime/modules/Options/MatchMakingOptions.cs diff --git a/Assets/PlayroomKit/modules/Options/MatchMakingOptions.cs.meta b/Assets/PlayroomKit/Runtime/modules/Options/MatchMakingOptions.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Options/MatchMakingOptions.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Options/MatchMakingOptions.cs.meta diff --git a/Assets/PlayroomKit/modules/Options/TurnBasedOptions.cs b/Assets/PlayroomKit/Runtime/modules/Options/TurnBasedOptions.cs similarity index 100% rename from Assets/PlayroomKit/modules/Options/TurnBasedOptions.cs rename to Assets/PlayroomKit/Runtime/modules/Options/TurnBasedOptions.cs diff --git a/Assets/PlayroomKit/modules/Options/TurnBasedOptions.cs.meta b/Assets/PlayroomKit/Runtime/modules/Options/TurnBasedOptions.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Options/TurnBasedOptions.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Options/TurnBasedOptions.cs.meta diff --git a/Assets/PlayroomKit/modules/Options/ZoneOptions.cs b/Assets/PlayroomKit/Runtime/modules/Options/ZoneOptions.cs similarity index 100% rename from Assets/PlayroomKit/modules/Options/ZoneOptions.cs rename to Assets/PlayroomKit/Runtime/modules/Options/ZoneOptions.cs diff --git a/Assets/PlayroomKit/modules/Options/ZoneOptions.cs.meta b/Assets/PlayroomKit/Runtime/modules/Options/ZoneOptions.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Options/ZoneOptions.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Options/ZoneOptions.cs.meta diff --git a/Assets/PlayroomKit/modules/Player.meta b/Assets/PlayroomKit/Runtime/modules/Player.meta similarity index 100% rename from Assets/PlayroomKit/modules/Player.meta rename to Assets/PlayroomKit/Runtime/modules/Player.meta diff --git a/Assets/PlayroomKit/modules/Player/LocalPlayerService.cs b/Assets/PlayroomKit/Runtime/modules/Player/LocalPlayerService.cs similarity index 100% rename from Assets/PlayroomKit/modules/Player/LocalPlayerService.cs rename to Assets/PlayroomKit/Runtime/modules/Player/LocalPlayerService.cs diff --git a/Assets/PlayroomKit/modules/Player/LocalPlayerService.cs.meta b/Assets/PlayroomKit/Runtime/modules/Player/LocalPlayerService.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Player/LocalPlayerService.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Player/LocalPlayerService.cs.meta diff --git a/Assets/PlayroomKit/modules/Player/Player.cs b/Assets/PlayroomKit/Runtime/modules/Player/Player.cs similarity index 100% rename from Assets/PlayroomKit/modules/Player/Player.cs rename to Assets/PlayroomKit/Runtime/modules/Player/Player.cs diff --git a/Assets/PlayroomKit/modules/Player/Player.cs.meta b/Assets/PlayroomKit/Runtime/modules/Player/Player.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Player/Player.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Player/Player.cs.meta diff --git a/Assets/PlayroomKit/modules/Player/PlayerService.cs b/Assets/PlayroomKit/Runtime/modules/Player/PlayerService.cs similarity index 100% rename from Assets/PlayroomKit/modules/Player/PlayerService.cs rename to Assets/PlayroomKit/Runtime/modules/Player/PlayerService.cs diff --git a/Assets/PlayroomKit/modules/Player/PlayerService.cs.meta b/Assets/PlayroomKit/Runtime/modules/Player/PlayerService.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Player/PlayerService.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Player/PlayerService.cs.meta diff --git a/Assets/PlayroomKit/modules/PlayroomBuildService.cs b/Assets/PlayroomKit/Runtime/modules/PlayroomBuildService.cs similarity index 100% rename from Assets/PlayroomKit/modules/PlayroomBuildService.cs rename to Assets/PlayroomKit/Runtime/modules/PlayroomBuildService.cs diff --git a/Assets/PlayroomKit/modules/PlayroomBuildService.cs.meta b/Assets/PlayroomKit/Runtime/modules/PlayroomBuildService.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/PlayroomBuildService.cs.meta rename to Assets/PlayroomKit/Runtime/modules/PlayroomBuildService.cs.meta diff --git a/Assets/PlayroomKit/modules/PlayroomkitDevManager.cs b/Assets/PlayroomKit/Runtime/modules/PlayroomkitDevManager.cs similarity index 100% rename from Assets/PlayroomKit/modules/PlayroomkitDevManager.cs rename to Assets/PlayroomKit/Runtime/modules/PlayroomkitDevManager.cs diff --git a/Assets/PlayroomKit/modules/PlayroomkitDevManager.cs.meta b/Assets/PlayroomKit/Runtime/modules/PlayroomkitDevManager.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/PlayroomkitDevManager.cs.meta rename to Assets/PlayroomKit/Runtime/modules/PlayroomkitDevManager.cs.meta diff --git a/Assets/PlayroomKit/modules/RPC.meta b/Assets/PlayroomKit/Runtime/modules/RPC.meta similarity index 100% rename from Assets/PlayroomKit/modules/RPC.meta rename to Assets/PlayroomKit/Runtime/modules/RPC.meta diff --git a/Assets/PlayroomKit/modules/RPC/RPC.cs b/Assets/PlayroomKit/Runtime/modules/RPC/RPC.cs similarity index 100% rename from Assets/PlayroomKit/modules/RPC/RPC.cs rename to Assets/PlayroomKit/Runtime/modules/RPC/RPC.cs diff --git a/Assets/PlayroomKit/modules/RPC/RPC.cs.meta b/Assets/PlayroomKit/Runtime/modules/RPC/RPC.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/RPC/RPC.cs.meta rename to Assets/PlayroomKit/Runtime/modules/RPC/RPC.cs.meta diff --git a/Assets/PlayroomKit/modules/RPC/RPCLocal.cs b/Assets/PlayroomKit/Runtime/modules/RPC/RPCLocal.cs similarity index 100% rename from Assets/PlayroomKit/modules/RPC/RPCLocal.cs rename to Assets/PlayroomKit/Runtime/modules/RPC/RPCLocal.cs diff --git a/Assets/PlayroomKit/modules/RPC/RPCLocal.cs.meta b/Assets/PlayroomKit/Runtime/modules/RPC/RPCLocal.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/RPC/RPCLocal.cs.meta rename to Assets/PlayroomKit/Runtime/modules/RPC/RPCLocal.cs.meta diff --git a/Assets/PlayroomKit/modules/Store.meta b/Assets/PlayroomKit/Runtime/modules/Store.meta similarity index 100% rename from Assets/PlayroomKit/modules/Store.meta rename to Assets/PlayroomKit/Runtime/modules/Store.meta diff --git a/Assets/PlayroomKit/modules/Store/PlayerEntitlements.cs b/Assets/PlayroomKit/Runtime/modules/Store/PlayerEntitlements.cs similarity index 100% rename from Assets/PlayroomKit/modules/Store/PlayerEntitlements.cs rename to Assets/PlayroomKit/Runtime/modules/Store/PlayerEntitlements.cs diff --git a/Assets/PlayroomKit/modules/Store/PlayerEntitlements.cs.meta b/Assets/PlayroomKit/Runtime/modules/Store/PlayerEntitlements.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Store/PlayerEntitlements.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Store/PlayerEntitlements.cs.meta diff --git a/Assets/PlayroomKit/modules/Store/SKU.cs b/Assets/PlayroomKit/Runtime/modules/Store/SKU.cs similarity index 100% rename from Assets/PlayroomKit/modules/Store/SKU.cs rename to Assets/PlayroomKit/Runtime/modules/Store/SKU.cs diff --git a/Assets/PlayroomKit/modules/Store/SKU.cs.meta b/Assets/PlayroomKit/Runtime/modules/Store/SKU.cs.meta similarity index 100% rename from Assets/PlayroomKit/modules/Store/SKU.cs.meta rename to Assets/PlayroomKit/Runtime/modules/Store/SKU.cs.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/.signature.p7s b/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/.signature.p7s deleted file mode 100644 index e32d4930c855b1bd705096d2ff8ff8d32edbdac0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11527 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 A&j0`b diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll b/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll deleted file mode 100644 index 023dc29f8ec686a62a79df092dc31b1922c0c871..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382976 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�p3=wM#8VoO&)?iD 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 diff --git a/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/.signature.p7s b/Assets/PlayroomKit/dependencies/System.Security.Principal.Windows.4.7.0/.signature.p7s deleted file mode 100644 index aed0689f44328c3f73caf9df6b1fa9386f899eab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18702 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 diff --git a/Assets/PlayroomKit/package.json b/Assets/PlayroomKit/package.json index bee959c1..ba439184 100644 --- a/Assets/PlayroomKit/package.json +++ b/Assets/PlayroomKit/package.json @@ -1,23 +1,12 @@ { - "name": "playroom-unity", - "version": "0.0.0", - "description": "This SDK is a wrapper over PlayroomKit JS. Currently, it only supports WebGL exported games. See [PlayroomKit Unity docs](https://docs.joinplayroom.com/usage/unity) for more information.", - "main": "index.js", - "type": "module", - "devDependencies": { - "vite": "^5.2.8", - "vite-plugin-static-copy": "^1.0.2" - }, - "scripts": { - "postinstall": "npm run build", - "build": "vite build --emptyOutDir" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "playroomkit": "0.0.87", - "react": "^18.2.0", - "react-dom": "^18.2.0" - } -} + "name": "com.playroomkit.sdk", + "version": "1.5.0", + "displayName": "PlayroomKit", + "description": "This SDK is a wrapper over PlayroomKit JS. Currently, it only supports WebGL exported games.", + "unity": "2022.3", + "unityRelease": "0b5", + "documentationUrl": "(https://docs.joinplayroom.com/usage/unity", + "changelogUrl": "", + "licensesUrl": "", + "dependencies": {} +} \ No newline at end of file diff --git a/Assets/PlayroomKit/package.json.meta b/Assets/PlayroomKit/package.json.meta index efa950b8..0b71274f 100644 --- a/Assets/PlayroomKit/package.json.meta +++ b/Assets/PlayroomKit/package.json.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 83fed7027fde44d63ad72ae1c59dc095 +guid: c1d33a87e6b5f204987521d1c6ba90de TextScriptImporter: externalObjects: {} userData: From 7810d4857a9517e4953728747f92f5873d4bf0c9 Mon Sep 17 00:00:00 2001 From: EffanByte <94035974+EffanByte@users.noreply.github.com> Date: Thu, 26 Jun 2025 15:32:56 +0500 Subject: [PATCH 02/12] fix: Path to PlayroomkitDevManagerEditor.css Changed Since the package can now be pulled from git URL, the path has been updated to /Packages/package instead of Assets/Package. --- Assets/PlayroomKit/Editor/PlayroomDevEditor.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Assets/PlayroomKit/Editor/PlayroomDevEditor.cs b/Assets/PlayroomKit/Editor/PlayroomDevEditor.cs index 74676267..97fea357 100644 --- a/Assets/PlayroomKit/Editor/PlayroomDevEditor.cs +++ b/Assets/PlayroomKit/Editor/PlayroomDevEditor.cs @@ -17,7 +17,8 @@ public class PrkMockInspector : Editor public void OnEnable() { - styleSheet = AssetDatabase.LoadAssetAtPath("Assets/PlayroomKit/Editor/PlayroomkitDevManagerEditor.uss"); + styleSheet = AssetDatabase.LoadAssetAtPath("Packages/com.playroomkit.sdk/Editor/PlayroomkitDevManagerEditor.uss"); + } public override VisualElement CreateInspectorGUI() From 7fd26588990ef978f026a5520f07fc0f8cbea30a Mon Sep 17 00:00:00 2001 From: EffanByte <94035974+EffanByte@users.noreply.github.com> Date: Fri, 27 Jun 2025 11:09:11 +0500 Subject: [PATCH 03/12] Added node_modules.meta to prevent creation of node_modules empty folder on opening project --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index a367a1d2..b7845561 100644 --- a/.gitignore +++ b/.gitignore @@ -75,6 +75,7 @@ crashlytics-build.properties .idea/.idea.playroom-unity/.idea/workspace.xml .idea/.idea.playroom-unity/.idea/workspace.xml node_modules +node_modules.meta metaList package-lock.json package-lock.json.meta From c57f3b80570fcd1465fc815afbcff294052802cf Mon Sep 17 00:00:00 2001 From: EffanByte <94035974+EffanByte@users.noreply.github.com> Date: Fri, 27 Jun 2025 11:38:56 +0500 Subject: [PATCH 04/12] Removed .meta file from repository as well --- Assets/PlayroomKit/Editor/node_modules.meta | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 Assets/PlayroomKit/Editor/node_modules.meta diff --git a/Assets/PlayroomKit/Editor/node_modules.meta b/Assets/PlayroomKit/Editor/node_modules.meta deleted file mode 100644 index 51851cb5..00000000 --- a/Assets/PlayroomKit/Editor/node_modules.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 9f7efd61e470aea4fa407527478b42f6 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: From 4b9d8ab2fbbdc9c20ecea413f82c5b40d77b4531 Mon Sep 17 00:00:00 2001 From: EffanByte <94035974+EffanByte@users.noreply.github.com> Date: Mon, 30 Jun 2025 10:01:47 +0500 Subject: [PATCH 05/12] Feat: Created a partially working NPM Install Editor Window The window is currently a menu item at the top. Functionalities that currently works are - Refreshing to check node if node works - Setting nodejs file path - Going to the download page Functionality Left to Implement: - Checking for node_modules - Running the install script --- .../Editor/PlayroomKitNPMManager.cs | 218 ++++++++++++++++++ .../Editor/PlayroomKitNPMManager.cs.meta | 12 + .../Editor/PlayroomKitNPMManager.uxml | 14 ++ .../Editor/PlayroomKitNPMManager.uxml.meta | 10 + 4 files changed, 254 insertions(+) create mode 100644 Assets/PlayroomKit/Editor/PlayroomKitNPMManager.cs create mode 100644 Assets/PlayroomKit/Editor/PlayroomKitNPMManager.cs.meta create mode 100644 Assets/PlayroomKit/Editor/PlayroomKitNPMManager.uxml create mode 100644 Assets/PlayroomKit/Editor/PlayroomKitNPMManager.uxml.meta diff --git a/Assets/PlayroomKit/Editor/PlayroomKitNPMManager.cs b/Assets/PlayroomKit/Editor/PlayroomKitNPMManager.cs new file mode 100644 index 00000000..d7c84aa5 --- /dev/null +++ b/Assets/PlayroomKit/Editor/PlayroomKitNPMManager.cs @@ -0,0 +1,218 @@ +using UnityEditor; +using UnityEngine; +using UnityEngine.UIElements; +using System.IO; + +public class PlayroomKitSetupWindow : EditorWindow +{ + private const string defaultNodePath = @"C:\Program Files\nodejs"; + + [MenuItem("PlayroomKit/Run Setup")] + public static void ShowWindow() + { + var window = GetWindow(); + window.titleContent = new GUIContent("PlayroomKit Setup"); + window.minSize = new Vector2(450, 300); + } + + public void CreateGUI() + { + // Load UXML + var visualTree = AssetDatabase.LoadAssetAtPath( + "Assets/Editor/PlayroomKitNPMManager.uxml" + ); + + if (visualTree == null) + { + Debug.LogError("Could not find UXML file. Check the path."); + return; + } + + VisualElement root = visualTree.CloneTree(); + rootVisualElement.Add(root); + + // Reference UI elements + Toggle npmCheck = root.Q("npmCheck"); + Toggle modulesCheck = root.Q("modulesCheck"); + TextField pathField = root.Q("pathField"); + Button inputPathButton = root.Q