Cecil is a library to generate and inspect programs and libraries in the ECMA CIL form.
Перейти к файлу
Mike Voorhees 1b6fe21024 Fix privatescope method resolution bug (#916)
When resolving a `GenericInstanceMethod` for a `privatescope` method that has the same signature as other methods, `MetadataResolver.GetMethod` would incorrectly return the first method with the same name.

The fix for this seems to be an optimization opportunity as well.  Although I have to admit it feels a little to easy.  Please make sure I'm not overlooking some reason why this fix is not safe.

A added 2 variations of tests.

`PrivateScope` - These tests were fine and passed as is.  This is because the instruction operands are MethodDefinitions and therefore didn't need to be resolved by `MetadataResolver`

`PrivateScopeGeneric` - This test triggered the bug.
2023-10-11 11:58:05 -04:00
.yamato Add yamato config to build cecil 2020-09-16 16:11:36 -07:00
Mono Bring the ReflectionImporter to NET_CORE 2017-03-08 19:19:43 -08:00
Mono.Cecil Fix privatescope method resolution bug (#916) 2023-10-11 11:58:05 -04:00
Mono.Cecil.Cil Avoid exception in GetSequencePointMapping when a pdb has multiple sequence points for the same offset. Fix #425 2020-07-21 10:46:22 -04:00
Mono.Cecil.Metadata Fix reading/writing the size of table indexes in external pdbs 2017-03-28 16:27:53 -07:00
Mono.Cecil.PE Compute deterministic mvid from metadata 2019-05-31 14:54:06 -04:00
Mono.Collections.Generic Improve thread-safety of lazy initializations 2020-01-22 11:04:29 -05:00
Mono.Security.Cryptography Fix invalid ComputeHash from ByteByffer array computation 2019-10-28 08:27:34 -04:00
Test Fix privatescope method resolution bug (#916) 2023-10-11 11:58:05 -04:00
rocks Unity: #if update for building against ns2 2019-04-24 13:18:19 -04:00
symbols Fix MdbWriter to produce the correct MVID in case deterministic output is required (#681) 2020-10-14 08:29:31 -04:00
.editorconfig Added .editorconfig to use indent_style tabs (for VS2017) 2017-03-15 01:39:18 +09:00
.gitattributes Use auto EOL for text 2014-11-13 13:41:13 +01:00
.gitignore Create bat file to build Cecil for katana automation 2017-02-09 10:02:31 -05:00
.travis.yml Added travis CI 2015-06-01 19:13:30 +02:00
LICENSE.txt This file doesn't use any markdown 2016-01-19 13:13:18 -06:00
Mono.Cecil.Tests.props Rename settings files to props 2016-07-26 20:46:52 -07:00
Mono.Cecil.csproj Remove unsafe code 2019-06-03 09:42:15 -04:00
Mono.Cecil.nunit Added travis CI 2015-06-01 19:13:30 +02:00
Mono.Cecil.nuspec Bump to beta 6 2017-05-24 16:06:23 -07:00
Mono.Cecil.overrides Create bat file to build Cecil for katana automation 2017-02-09 10:02:31 -05:00
Mono.Cecil.props remove duplication in props 2017-05-05 14:53:46 +10:00
Mono.Cecil.sln add readonly config 2017-05-04 13:31:26 +10:00
Mono.Cecil.sln.DotSettings Add support for the portable pdb format 2016-07-13 13:45:31 -07:00
NetStandard.props Do full signing only on windows for .net core 2017-02-17 09:14:27 -08:00
ProjectInfo.cs Bump to beta 6 2017-05-24 16:06:23 -07:00
README.md Add a note to about important branches in Unity's fork 2020-07-21 11:16:00 -04:00
Unity.AssemblyInfo.cs Create bat file to build Cecil for katana automation 2017-02-09 10:02:31 -05:00
Unity.snk Create bat file to build Cecil for katana automation 2017-02-09 10:02:31 -05:00
appveyor.yml Add appveyor config to the repo 2015-06-02 14:48:06 +02:00
build.bat Add yamato config to build cecil 2020-09-16 16:11:36 -07:00
cecil.snk Switch to our own snk 2017-02-28 10:23:51 -08:00

README.md

Cecil

This is Unity's fork of Cecil. These are the branches specific to Unity's use of this fork:

Mono.Cecil is a library to generate and inspect programs and libraries in the ECMA CIL form.

To put it simply, you can use Cecil to:

  • Analyze .NET binaries using a simple and powerful object model, without having to load assemblies to use Reflection.
  • Modify .NET binaries, add new metadata structures and alter the IL code.

Cecil has been around since 2004 and is widely used in the .NET community.

The best way to learn how to use Cecil is to dive into the Cecil.Samples repository. It's a growing collection of samples with the goal of showing how to get things done using Cecil, as IL manipulation can sometime get tricky.

Read about the Cecil development on the development log.

To discuss Cecil, the best place is the mono-cecil Google Group.

Cecil is a project under the benevolent umbrella of the .NET Foundation.

.NET build status Mono build status Join the chat at https://gitter.im/jbevain/cecil