// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using ILLink.Shared.TypeSystemProxy;
using Mono.Cecil;
namespace Mono.Linker
{
public class KnownMembers
{
public MethodDefinition? NotSupportedExceptionCtorString { get; set; }
public MethodDefinition? DisablePrivateReflectionAttributeCtor { get; set; }
public MethodDefinition? ObjectCtor { get; set; }
public TypeDefinition? RemoveAttributeInstancesAttributeDefinition { get; set; }
public static bool IsNotSupportedExceptionCtorString (MethodDefinition method)
{
if (!method.IsConstructor || method.IsStatic || !method.HasMetadataParameters ())
return false;
if (method.GetMetadataParametersCount () != 1 || method.GetParameter ((ParameterIndex) 1).ParameterType.MetadataType != MetadataType.String)
return false;
return true;
}
public static bool IsSatelliteAssemblyMarker (MethodDefinition method)
{
if (!method.IsConstructor || method.IsStatic)
return false;
var declaringType = method.DeclaringType;
return declaringType.Name == "ResourceManager" && declaringType.Namespace == "System.Resources";
}
}
}
|