实例介绍
MemoryPack是一款针对C#和Unity的零编码极致性能二进制序列化器。与System.Text.Json、protobuf-net、MessagePack for C#和Orleans.Serialization相比,MemoryPack在.NET 7 / Ryzen 9 5950X机器上表现优异。这些序列化器都有IBufferWriter方法,使用ArrayBufferWriter进行序列化,并重用以避免测量缓冲区复制。
对于标准对象,MemoryPack比其他二进制序列化器快10倍,甚至比其他序列化器快2到5倍。对于结构数组,MemoryPack更加强大,速度可达其他序列化器的50到200倍。
MemoryPack是我创建的第四个序列化器,之前我创建了知名的序列化器ZeroFormatter、Utf8Json和MessagePack for C#。MemoryPack之所以如此快,是因为它采用了C#特定、C#优化的二进制格式,并根据我的过去经验进行了精心调整的实现。它还是一种全新的设计,利用了.NET 7和C# 11以及增量源生成器(.NET Standard 2.1(.NET 5、6)和Unity支持)。

【核心代码】
文件清单
└── MemoryPack-4b1e3f889fbc8bae6e700bc148f6dbba0a4b7170
├── Directory.Build.props
├── docs
│ └── graph.xlsx
├── Icon.png
├── LICENSE.md
├── MemoryPack.sln
├── opensource.snk
├── README.md
├── sandbox
│ ├── Benchmark
│ │ ├── Benchmark.csproj
│ │ ├── BenchmarkNetUtilities
│ │ │ ├── Categories.cs
│ │ │ └── PayloadColumn.cs
│ │ ├── Benchmarks
│ │ │ ├── Compression.cs
│ │ │ ├── DeserializeTest.cs
│ │ │ ├── JilBenchmark.cs
│ │ │ ├── ListFormatterVsDirect.cs
│ │ │ ├── SerializerTestBase.cs
│ │ │ ├── SerializeTest.cs
│ │ │ ├── StaticDictionaryFormatter.cs
│ │ │ ├── Utf16VsUtf8.cs
│ │ │ └── VersionTolerant.cs
│ │ ├── Micro
│ │ │ ├── BlockCopy.cs
│ │ │ ├── ConcurrentQueueVsStack.cs
│ │ │ ├── GetLocalVsStaticField.cs
│ │ │ ├── Hyper.cs
│ │ │ ├── RawSerialize.cs
│ │ │ ├── SerializeInt.cs
│ │ │ ├── SpanSliceTest.cs
│ │ │ ├── StaticAbstractVsFormatter.cs
│ │ │ └── Utf8Decoding.cs
│ │ ├── Models
│ │ │ ├── BinaryPackModels
│ │ │ │ ├── Helpers
│ │ │ │ │ ├── EqualityComparer.cs
│ │ │ │ │ ├── RandomProvider.cs
│ │ │ │ │ └── StructuralComparer.cs
│ │ │ │ ├── Interfaces
│ │ │ │ │ └── IInitializable.cs
│ │ │ │ ├── JsonResponseModel.cs
│ │ │ │ └── NeuralNetworkLayerModel.cs
│ │ │ ├── HyperTest.cs
│ │ │ ├── JilExtensionMethods.cs
│ │ │ ├── JilModels
│ │ │ │ ├── AccessToken.cs
│ │ │ │ ├── AccountMerge.cs
│ │ │ │ ├── Answer.cs
│ │ │ │ ├── Badge.cs
│ │ │ │ ├── Comment.cs
│ │ │ │ ├── Error.cs
│ │ │ │ ├── Event.cs
│ │ │ │ ├── Feed.cs
│ │ │ │ ├── FlagOption.cs
│ │ │ │ ├── InboxItem.cs
│ │ │ │ ├── Info.cs
│ │ │ │ ├── NetworkUser.cs
│ │ │ │ ├── Notification.cs
│ │ │ │ ├── Post.cs
│ │ │ │ ├── Privilege.cs
│ │ │ │ ├── Question.cs
│ │ │ │ ├── QuestionTimeline.cs
│ │ │ │ ├── Reputation.cs
│ │ │ │ ├── ReputationHistory.cs
│ │ │ │ ├── Revision.cs
│ │ │ │ ├── SearchExcerpt.cs
│ │ │ │ ├── ShallowUser.cs
│ │ │ │ ├── SuggestedEdit.cs
│ │ │ │ ├── Tag.cs
│ │ │ │ ├── TagScore.cs
│ │ │ │ ├── TagSynonym.cs
│ │ │ │ ├── TagWiki.cs
│ │ │ │ ├── TopTag.cs
│ │ │ │ ├── User.cs
│ │ │ │ ├── UserTimeline.cs
│ │ │ │ └── WritePermission.cs
│ │ │ ├── MyClass.cs
│ │ │ └── Vector3.cs
│ │ └── Program.cs
│ ├── ClassLibrary
│ │ ├── Class1.cs
│ │ └── ClassLibrary.csproj
│ ├── NativeAot
│ │ ├── NativeAot.csproj
│ │ └── Program.cs
│ ├── Net6VsNet7
│ │ ├── Net6VsNet7.csproj
│ │ └── Program.cs
│ ├── SandboxConsoleApp
│ │ ├── ForReadMe.cs
│ │ ├── Models.cs
│ │ ├── Program.cs
│ │ ├── SandboxConsoleApp.csproj
│ │ └── SystemTextJsonChecker.cs
│ ├── SandboxNet6
│ │ ├── NamespaceTest.cs
│ │ ├── Program.cs
│ │ └── SandboxNet6.csproj
│ └── SandboxWebApp
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── Controllers
│ │ └── MemoryPackController.cs
│ ├── Models.cs
│ ├── Pages
│ │ ├── Error.cshtml
│ │ ├── Error.cshtml.cs
│ │ ├── Index.cshtml
│ │ ├── Index.cshtml.cs
│ │ ├── Privacy.cshtml
│ │ ├── Privacy.cshtml.cs
│ │ ├── Shared
│ │ │ ├── _Layout.cshtml
│ │ │ ├── _Layout.cshtml.css
│ │ │ └── _ValidationScriptsPartial.cshtml
│ │ ├── _ViewImports.cshtml
│ │ └── _ViewStart.cshtml
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── SandboxWebApp.csproj
│ ├── tests
│ │ └── test.ts
│ ├── tsconfig.json
│ └── wwwroot
│ ├── css
│ │ └── site.css
│ ├── favicon.ico
│ ├── js
│ │ ├── file.js
│ │ ├── file.js.map
│ │ ├── file.ts
│ │ ├── memorypack
│ │ │ ├── AllConvertableType.js
│ │ │ ├── AllConvertableType.js.map
│ │ │ ├── AllConvertableType.ts
│ │ │ ├── ArrayGenericsCheck.js
│ │ │ ├── ArrayGenericsCheck.js.map
│ │ │ ├── ArrayGenericsCheck.ts
│ │ │ ├── Gender.js
│ │ │ ├── Gender.js.map
│ │ │ ├── Gender.ts
│ │ │ ├── IMogeUnion.js
│ │ │ ├── IMogeUnion.js.map
│ │ │ ├── IMogeUnion.ts
│ │ │ ├── MemoryPackReader.js
│ │ │ ├── MemoryPackReader.js.map
│ │ │ ├── MemoryPackReader.ts
│ │ │ ├── MemoryPackWriter.js
│ │ │ ├── MemoryPackWriter.js.map
│ │ │ ├── MemoryPackWriter.ts
│ │ │ ├── NestedObject.js
│ │ │ ├── NestedObject.js.map
│ │ │ ├── NestedObject.ts
│ │ │ ├── NoMarkByteEnum.js
│ │ │ ├── NoMarkByteEnum.js.map
│ │ │ ├── NoMarkByteEnum.ts
│ │ │ ├── NumberedUShortEnum.js
│ │ │ ├── NumberedUShortEnum.js.map
│ │ │ ├── NumberedUShortEnum.ts
│ │ │ ├── Person.js
│ │ │ ├── Person.js.map
│ │ │ ├── Person.ts
│ │ │ ├── Rec.js
│ │ │ ├── Rec.js.map
│ │ │ ├── Rec.ts
│ │ │ ├── Re.js
│ │ │ ├── Re.js.map
│ │ │ ├── Re.ts
│ │ │ ├── R.js
│ │ │ ├── R.js.map
│ │ │ ├── R.ts
│ │ │ ├── SampleLarge.js
│ │ │ ├── SampleLarge.js.map
│ │ │ ├── SampleLarge.ts
│ │ │ ├── SampleUnion1.js
│ │ │ ├── SampleUnion1.js.map
│ │ │ ├── SampleUnion1.ts
│ │ │ ├── SampleUnion2.js
│ │ │ ├── SampleUnion2.js.map
│ │ │ ├── SampleUnion2.ts
│ │ │ ├── Subset.js
│ │ │ ├── Subset.js.map
│ │ │ └── Subset.ts
│ │ └── site.js
│ └── lib
│ ├── bootstrap
│ │ ├── dist
│ │ │ ├── css
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.css.map
│ │ │ │ ├── bootstrap-grid.css
│ │ │ │ ├── bootstrap-grid.css.map
│ │ │ │ ├── bootstrap-grid.min.css
│ │ │ │ ├── bootstrap-grid.min.css.map
│ │ │ │ ├── bootstrap-grid.rtl.css
│ │ │ │ ├── bootstrap-grid.rtl.css.map
│ │ │ │ ├── bootstrap-grid.rtl.min.css
│ │ │ │ ├── bootstrap-grid.rtl.min.css.map
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ ├── bootstrap.min.css.map
│ │ │ │ ├── bootstrap-reboot.css
│ │ │ │ ├── bootstrap-reboot.css.map
│ │ │ │ ├── bootstrap-reboot.min.css
│ │ │ │ ├── bootstrap-reboot.min.css.map
│ │ │ │ ├── bootstrap-reboot.rtl.css
│ │ │ │ ├── bootstrap-reboot.rtl.css.map
│ │ │ │ ├── bootstrap-reboot.rtl.min.css
│ │ │ │ ├── bootstrap-reboot.rtl.min.css.map
│ │ │ │ ├── bootstrap.rtl.css
│ │ │ │ ├── bootstrap.rtl.css.map
│ │ │ │ ├── bootstrap.rtl.min.css
│ │ │ │ ├── bootstrap.rtl.min.css.map
│ │ │ │ ├── bootstrap-utilities.css
│ │ │ │ ├── bootstrap-utilities.css.map
│ │ │ │ ├── bootstrap-utilities.min.css
│ │ │ │ ├── bootstrap-utilities.min.css.map
│ │ │ │ ├── bootstrap-utilities.rtl.css
│ │ │ │ ├── bootstrap-utilities.rtl.css.map
│ │ │ │ ├── bootstrap-utilities.rtl.min.css
│ │ │ │ └── bootstrap-utilities.rtl.min.css.map
│ │ │ └── js
│ │ │ ├── bootstrap.bundle.js
│ │ │ ├── bootstrap.bundle.js.map
│ │ │ ├── bootstrap.bundle.min.js
│ │ │ ├── bootstrap.bundle.min.js.map
│ │ │ ├── bootstrap.esm.js
│ │ │ ├── bootstrap.esm.js.map
│ │ │ ├── bootstrap.esm.min.js
│ │ │ ├── bootstrap.esm.min.js.map
│ │ │ ├── bootstrap.js
│ │ │ ├── bootstrap.js.map
│ │ │ ├── bootstrap.min.js
│ │ │ └── bootstrap.min.js.map
│ │ └── LICENSE
│ ├── jquery
│ │ ├── dist
│ │ │ ├── jquery.js
│ │ │ ├── jquery.min.js
│ │ │ └── jquery.min.map
│ │ └── LICENSE.txt
│ ├── jquery-validation
│ │ ├── dist
│ │ │ ├── additional-methods.js
│ │ │ ├── additional-methods.min.js
│ │ │ ├── jquery.validate.js
│ │ │ └── jquery.validate.min.js
│ │ └── LICENSE.md
│ └── jquery-validation-unobtrusive
│ ├── jquery.validate.unobtrusive.js
│ ├── jquery.validate.unobtrusive.min.js
│ └── LICENSE.txt
├── src
│ ├── MemoryPack
│ │ ├── bin
│ │ │ └── Debug
│ │ │ └── netstandard2.1
│ │ │ ├── MemoryPack.Generator.dll.meta
│ │ │ ├── package.json
│ │ │ └── package.json.meta
│ │ └── MemoryPack.csproj
│ ├── MemoryPack.AspNetCoreMvcFormatter
│ │ ├── MediaTypeHeaderValues.cs
│ │ ├── MemoryPack.AspNetCoreMvcFormatter.csproj
│ │ ├── MemoryPackInputFormatter.cs
│ │ ├── MemoryPackOutputFormatter.cs
│ │ └── Properties
│ │ └── launchSettings.json
│ ├── MemoryPack.Core
│ │ ├── Attributes.cs
│ │ ├── Compression
│ │ │ ├── BitPackFormatter.cs
│ │ │ ├── BrotliCompressor.cs
│ │ │ ├── BrotliDecompressor.cs
│ │ │ └── BrotliFormatter.cs
│ │ ├── CustomFormatterAttributes.cs
│ │ ├── Formatters
│ │ │ ├── ArrayFormatters.cs
│ │ │ ├── BigIntegerFormatter.cs
│ │ │ ├── BitArrayFormatter.cs
│ │ │ ├── CollectionFormatters.cs
│ │ │ ├── CultureInfoFormatter.cs
│ │ │ ├── DynamicUnionFormatter.cs
│ │ │ ├── FrozenCollectionFormatter.cs
│ │ │ ├── GenericCollectionFormatters.cs
│ │ │ ├── ImmutableCollectionFormatters.cs
│ │ │ ├── InterfaceCollectionFormatters.cs
│ │ │ ├── KeyValuePairFormatter.cs
│ │ │ ├── LazyFormatter.cs
│ │ │ ├── MemoryPackableFormatter.cs
│ │ │ ├── MultiDimensionalArrayFormatters.cs
│ │ │ ├── NullableFormatter.cs
│ │ │ ├── StringBuilderFormatter.cs
│ │ │ ├── StringFormatter.cs
│ │ │ ├── TimeZoneInfoFormatter.cs
│ │ │ ├── TupleFormatter.cs
│ │ │ ├── TupleFormatter.tt
│ │ │ ├── TypeFormatter.cs
│ │ │ ├── UnmanagedFormatter.cs
│ │ │ ├── UriFormatter.cs
│ │ │ └── VersionFormatter.cs
│ │ ├── IMemoryPackable.cs
│ │ ├── IMemoryPackFormatter.cs
│ │ ├── Internal
│ │ │ ├── CollectionsMarshalEx.cs
│ │ │ ├── EnumerableExtensions.cs
│ │ │ ├── FixedArrayBufferWriter.cs
│ │ │ ├── MathEx.cs
│ │ │ ├── MemoryMarshalEx.cs
│ │ │ ├── PreserveAttribute.cs
│ │ │ ├── ReusableLinkedArrayBufferWriter.cs
│ │ │ ├── ReusableReadOnlySequenceBuilder.cs
│ │ │ └── TypeHelpers.cs
│ │ ├── MemoryPackCode.cs
│ │ ├── MemoryPack.Core.csproj
│ │ ├── MemoryPackFormatterProvider.cs
│ │ ├── MemoryPackFormatterProvider.WellknownTypes.cs
│ │ ├── MemoryPackFormatterProvider.WellknownTypes.tt
│ │ ├── MemoryPackReader.cs
│ │ ├── MemoryPackReaderOptionalState.cs
│ │ ├── MemoryPackReader.Unmanaged.cs
│ │ ├── MemoryPackReader.Unmanaged.tt
│ │ ├── MemoryPackReaderWriter.VarInt.cs
│ │ ├── MemoryPackSerializationException.cs
│ │ ├── MemoryPackSerializer.Deserialize.cs
│ │ ├── MemoryPackSerializer.NonGenerics.cs
│ │ ├── MemoryPackSerializerOptions.cs
│ │ ├── MemoryPackSerializer.Serialize.cs
│ │ ├── MemoryPackWriter.cs
│ │ ├── MemoryPackWriterOptionalState.cs
│ │ ├── MemoryPackWriter.Unmanaged.cs
│ │ └── MemoryPackWriter.Unmanaged.tt
│ ├── MemoryPack.Generator
│ │ ├── CoreEnums.cs
│ │ ├── DiagnosticDescriptors.cs
│ │ ├── Extensions.cs
│ │ ├── IGeneratorContext.cs
│ │ ├── MemoryPackGenerator.cs
│ │ ├── MemoryPack.Generator.csproj
│ │ ├── MemoryPackGenerator.Emitter.cs
│ │ ├── MemoryPackGenerator.Parser.cs
│ │ ├── MemoryPackGenerator.TypeScript.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── ReferenceSymbols.cs
│ │ ├── TypeCollector.cs
│ │ ├── TypeScriptMember.cs
│ │ └── TypeScriptRuntime.cs
│ ├── MemoryPack.Streaming
│ │ ├── MemoryPack.Streaming.csproj
│ │ └── MemoryPackStreamingSerializer.cs
│ ├── MemoryPack.Unity
│ │ ├── Assets
│ │ │ ├── Editor
│ │ │ │ ├── PackageExporter.cs
│ │ │ │ └── PackageExporter.cs.meta
│ │ │ ├── Editor.meta
│ │ │ ├── MemoryPack.Unity
│ │ │ │ ├── package.json
│ │ │ │ ├── package.json.meta
│ │ │ │ ├── Runtime
│ │ │ │ │ ├── MemoryPack.Unity.asmdef
│ │ │ │ │ ├── MemoryPack.Unity.asmdef.meta
│ │ │ │ │ ├── ProviderInitializer.cs
│ │ │ │ │ ├── ProviderInitializer.cs.meta
│ │ │ │ │ ├── UnityFormatters.cs
│ │ │ │ │ └── UnityFormatters.cs.meta
│ │ │ │ └── Runtime.meta
│ │ │ ├── MemoryPack.Unity.meta
│ │ │ ├── NuGet.config
│ │ │ ├── NuGet.config.meta
│ │ │ ├── Packages
│ │ │ │ ├── System.Collections.Immutable.6.0.0
│ │ │ │ │ ├── buildTransitive
│ │ │ │ │ │ ├── netcoreapp2.0
│ │ │ │ │ │ │ ├── System.Collections.Immutable.targets
│ │ │ │ │ │ │ └── System.Collections.Immutable.targets.meta
│ │ │ │ │ │ ├── netcoreapp2.0.meta
│ │ │ │ │ │ ├── netcoreapp3.1
│ │ │ │ │ │ │ ├── _._
│ │ │ │ │ │ │ └── _._.meta
│ │ │ │ │ │ └── netcoreapp3.1.meta
│ │ │ │ │ ├── buildTransitive.meta
│ │ │ │ │ ├── Icon.png
│ │ │ │ │ ├── Icon.png.meta
│ │ │ │ │ ├── lib
│ │ │ │ │ │ ├── netstandard2.0
│ │ │ │ │ │ │ ├── System.Collections.Immutable.dll
│ │ │ │ │ │ │ ├── System.Collections.Immutable.dll.meta
│ │ │ │ │ │ │ ├── System.Collections.Immutable.xml
│ │ │ │ │ │ │ └── System.Collections.Immutable.xml.meta
│ │ │ │ │ │ └── netstandard2.0.meta
│ │ │ │ │ ├── lib.meta
│ │ │ │ │ ├── LICENSE.TXT
│ │ │ │ │ ├── LICENSE.TXT.meta
│ │ │ │ │ ├── System.Collections.Immutable.nuspec
│ │ │ │ │ ├── System.Collections.Immutable.nuspec.meta
│ │ │ │ │ ├── THIRD-PARTY-NOTICES.TXT
│ │ │ │ │ ├── THIRD-PARTY-NOTICES.TXT.meta
│ │ │ │ │ ├── useSharedDesignerContext.txt
│ │ │ │ │ └── useSharedDesignerContext.txt.meta
│ │ │ │ ├── System.Collections.Immutable.6.0.0.meta
│ │ │ │ ├── System.Runtime.CompilerServices.Unsafe.6.0.0
│ │ │ │ │ ├── buildTransitive
│ │ │ │ │ │ ├── netcoreapp2.0
│ │ │ │ │ │ │ ├── System.Runtime.CompilerServices.Unsafe.targets
│ │ │ │ │ │ │ └── System.Runtime.CompilerServices.Unsafe.targets.meta
│ │ │ │ │ │ ├── netcoreapp2.0.meta
│ │ │ │ │ │ ├── netcoreapp3.1
│ │ │ │ │ │ │ ├── _._
│ │ │ │ │ │ │ └── _._.meta
│ │ │ │ │ │ └── netcoreapp3.1.meta
│ │ │ │ │ ├── buildTransitive.meta
│ │ │ │ │ ├── Icon.png
│ │ │ │ │ ├── Icon.png.meta
│ │ │ │ │ ├── lib
│ │ │ │ │ │ ├── netstandard2.0
│ │ │ │ │ │ │ ├── System.Runtime.CompilerServices.Unsafe.dll
│ │ │ │ │ │ │ ├── System.Runtime.CompilerServices.Unsafe.dll.meta
│ │ │ │ │ │ │ ├── System.Runtime.CompilerServices.Unsafe.xml
│ │ │ │ │ │ │ └── System.Runtime.CompilerServices.Unsafe.xml.meta
│ │ │ │ │ │ └── netstandard2.0.meta
│ │ │ │ │ ├── lib.meta
│ │ │ │ │ ├── LICENSE.TXT
│ │ │ │ │ ├── LICENSE.TXT.meta
│ │ │ │ │ ├── System.Runtime.CompilerServices.Unsafe.nuspec
│ │ │ │ │ ├── System.Runtime.CompilerServices.Unsafe.nuspec.meta
│ │ │ │ │ ├── THIRD-PARTY-NOTICES.TXT
│ │ │ │ │ ├── THIRD-PARTY-NOTICES.TXT.meta
│ │ │ │ │ ├── useSharedDesignerContext.txt
│ │ │ │ │ └── useSharedDesignerContext.txt.meta
│ │ │ │ └── System.Runtime.CompilerServices.Unsafe.6.0.0.meta
│ │ │ ├── packages.config
│ │ │ ├── packages.config.meta
│ │ │ ├── Packages.meta
│ │ │ ├── Resources.meta
│ │ │ ├── RuntimeUnitTestToolkit
│ │ │ │ ├── Editor
│ │ │ │ │ ├── HierarchyTreeBuilder.cs
│ │ │ │ │ ├── HierarchyTreeBuilder.cs.meta
│ │ │ │ │ ├── UnitTestBuilder.cs
│ │ │ │ │ ├── UnitTestBuilder.cs.meta
│ │ │ │ │ ├── UnitTestBuilder.MenuItems.cs
│ │ │ │ │ └── UnitTestBuilder.MenuItems.cs.meta
│ │ │ │ ├── Editor.meta
│ │ │ │ ├── package.json
│ │ │ │ ├── package.json.meta
│ │ │ │ ├── RuntimeUnitTestToolkit.asmdef
│ │ │ │ ├── RuntimeUnitTestToolkit.asmdef.meta
│ │ │ │ ├── UnitTestData.cs
│ │ │ │ ├── UnitTestData.cs.meta
│ │ │ │ ├── UnitTestRunner.cs
│ │ │ │ └── UnitTestRunner.cs.meta
│ │ │ ├── RuntimeUnitTestToolkit.meta
│ │ │ ├── Scenes
│ │ │ │ ├── RuntimeUnitTestScene.unity
│ │ │ │ ├── RuntimeUnitTestScene.unity.meta
│ │ │ │ ├── SampleScene.unity
│ │ │ │ └── SampleScene.unity.meta
│ │ │ ├── Scenes.meta
│ │ │ ├── Tests
│ │ │ │ ├── AotTest.cs
│ │ │ │ ├── AotTest.cs.meta
│ │ │ │ ├── BuiltinTest.cs
│ │ │ │ ├── BuiltinTest.cs.meta
│ │ │ │ ├── MemoryPackObjects
│ │ │ │ │ ├── Containers.cs
│ │ │ │ │ ├── Containers.cs.meta
│ │ │ │ │ ├── Ctors.cs
│ │ │ │ │ ├── Ctors.cs.meta
│ │ │ │ │ ├── GenericsType.cs
│ │ │ │ │ ├── GenericsType.cs.meta
│ │ │ │ │ ├── Include.cs
│ │ │ │ │ ├── Include.cs.meta
│ │ │ │ │ ├── Issues.cs
│ │ │ │ │ ├── Issues.cs.meta
│ │ │ │ │ ├── ManyMembers.cs
│ │ │ │ │ ├── ManyMembers.cs.meta
│ │ │ │ │ ├── MemberKinds.cs
│ │ │ │ │ ├── MemberKinds.cs.meta
│ │ │ │ │ ├── MemoryPackObjects.asmdef
│ │ │ │ │ ├── MemoryPackObjects.asmdef.meta
│ │ │ │ │ ├── MethodCall.cs
│ │ │ │ │ ├── MethodCall.cs.meta
│ │ │ │ │ ├── Overwrite.cs
│ │ │ │ │ ├── Overwrite.cs.meta
│ │ │ │ │ ├── Perf.cs
│ │ │ │ │ ├── Perf.cs.meta
│ │ │ │ │ ├── PrimitiveArrays.cs
│ │ │ │ │ ├── PrimitiveArrays.cs.meta
│ │ │ │ │ ├── Records.cs
│ │ │ │ │ ├── Records.cs.meta
│ │ │ │ │ ├── Recursive.cs
│ │ │ │ │ ├── Recursive.cs.meta
│ │ │ │ │ ├── StandardType.cs
│ │ │ │ │ ├── StandardType.cs.meta
│ │ │ │ │ ├── Takoyaki.cs
│ │ │ │ │ ├── Takoyaki.cs.meta
│ │ │ │ │ ├── Union.cs
│ │ │ │ │ ├── Union.cs.meta
│ │ │ │ │ ├── Versioned.cs
│ │ │ │ │ ├── Versioned.cs.meta
│ │ │ │ │ ├── Versioning.cs
│ │ │ │ │ ├── Versioning.cs.meta
│ │ │ │ │ ├── WellknownTypes.cs
│ │ │ │ │ └── WellknownTypes.cs.meta
│ │ │ │ ├── MemoryPackObjects.meta
│ │ │ │ ├── PerfTest.cs
│ │ │ │ ├── PerfTest.cs.meta
│ │ │ │ ├── SampleOne.cs
│ │ │ │ ├── SampleOne.cs.meta
│ │ │ │ ├── Tests.asmdef
│ │ │ │ ├── Tests.asmdef.meta
│ │ │ │ ├── UnityPrimitivesTest.cs
│ │ │ │ └── UnityPrimitivesTest.cs.meta
│ │ │ └── Tests.meta
│ │ ├── Packages
│ │ │ ├── manifest.json
│ │ │ └── packages-lock.json
│ │ ├── ProjectSettings
│ │ │ ├── AudioManager.asset
│ │ │ ├── BurstAotSettings_StandaloneWindows.json
│ │ │ ├── ClusterInputManager.asset
│ │ │ ├── CommonBurstAotSettings.json
│ │ │ ├── DynamicsManager.asset
│ │ │ ├── EditorBuildSettings.asset
│ │ │ ├── EditorSettings.asset
│ │ │ ├── GraphicsSettings.asset
│ │ │ ├── InputManager.asset
│ │ │ ├── MemorySettings.asset
│ │ │ ├── NavMeshAreas.asset
│ │ │ ├── NetworkManager.asset
│ │ │ ├── PackageManagerSettings.asset
│ │ │ ├── Physics2DSettings.asset
│ │ │ ├── PresetManager.asset
│ │ │ ├── ProjectSettings.asset
│ │ │ ├── ProjectVersion.txt
│ │ │ ├── QualitySettings.asset
│ │ │ ├── SceneTemplateSettings.json
│ │ │ ├── TagManager.asset
│ │ │ ├── TimeManager.asset
│ │ │ ├── UnityConnectSettings.asset
│ │ │ ├── VersionControlSettings.asset
│ │ │ ├── VFXManager.asset
│ │ │ └── XRSettings.asset
│ │ └── UserSettings
│ │ ├── EditorUserSettings.asset
│ │ ├── Layouts
│ │ │ └── default-2021.dwlt
│ │ ├── Search.index
│ │ └── Search.settings
│ └── MemoryPack.UnityShims
│ ├── MemoryPack.UnityShims.csproj
│ └── Shims.cs
└── tests
└── MemoryPack.Tests
├── ArrayFormatterTest.cs
├── ArrayTest.cs
├── BrotliTest.cs
├── CircularReferenceTest.cs
├── CollectionFormatterTest.cs
├── CompressionTest.cs
├── ConstructorTest.cs
├── CustomCollectionTest.cs
├── CustomFormatterTest.cs
├── DefaultValueTest.cs
├── DeserializeTest.cs
├── EnumTest.cs
├── FrozenCollectionFormatterTest.cs
├── Fuzz.cs
├── GeneratorDiagnosticsTest.cs
├── GeneratorDiagnosticsTest.ManyMembers.cs
├── GeneratorDiagnosticsTest.TypeScript.cs
├── GeneratorTest.cs
├── ImmutableCollectionFormatterTest.cs
├── InterfaceFormatterTest.cs
├── MemoryLayoutTest.cs
├── MemoryPack.Tests.csproj
├── MethodRefTest.cs
├── Models
│ ├── Arrays.cs
│ ├── CircularReference.cs
│ ├── Ctors.cs
│ ├── CustomAttribute.cs
│ ├── DefaultValues.cs
│ ├── GenericsType.cs
│ ├── Include.cs
│ ├── KeywordIdentifier.cs
│ ├── ManyMembers.cs
│ ├── MemberKinds.cs
│ ├── MethodCall.cs
│ ├── NamespaceMempack.cs
│ ├── Overwrite.cs
│ ├── Records.cs
│ ├── Recursive.cs
│ ├── StandardType.cs
│ ├── Union.cs
│ ├── Versioning.cs
│ ├── VersionTolerant.cs
│ └── WellknownTypes.cs
├── NonGenerics.cs
├── OverwriteTest.cs
├── PrimitiveTest.cs
├── ProviderTest.cs
├── ReaderTest.cs
├── ReflectionTest.cs
├── Streaming
│ └── StreamingSerializer.cs
├── StreamOptimizeTest.cs
├── StringTest.cs
├── TupleTest.cs
├── UnionTest.cs
├── Utils
│ ├── CSharpGeneratorRunner.cs
│ └── ReadOnlySequenceBuilder.cs
├── VarIntTest.cs
├── VersionTest.cs
├── VersionTolerantTest.cs
├── WellknownFormattersTest.cs
├── WriterOptionalStateTest.cs
└── WriterTest.cs
84 directories, 540 files
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论