Skip to content

Commit d28c3ca

Browse files
committed
Decorating reflection heave methods with RequiresUnreferencedCode
1 parent 7c6ade3 commit d28c3ca

3 files changed

Lines changed: 15 additions & 4 deletions

File tree

src/IdentityManager2/Assets/AssetManager.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Collections.Concurrent;
22
using System.Collections.Generic;
33
using System.ComponentModel;
4+
using System.Diagnostics.CodeAnalysis;
45
using System.IO;
56
using System.Runtime.CompilerServices;
67

@@ -29,19 +30,21 @@ internal static string LoadResourceString(string name)
2930
internal static string LoadResourceString(string name, IDictionary<string, object> values)
3031
{
3132
var value = LoadResourceString(name);
32-
foreach(var key in values.Keys)
33+
foreach (var kv in values)
3334
{
34-
var val = values[key];
35-
value = value.Replace("{" + key + "}", val != null ? val.ToString() : "");
35+
var val = kv.Value;
36+
value = value.Replace("{" + kv.Key + "}", val != null ? val.ToString() : "");
3637
}
3738
return value;
3839
}
3940

41+
[RequiresUnreferencedCode("Calls System.ComponentModel.TypeDescriptor.GetProperties(Object)")]
4042
internal static string LoadResourceString(string name, object values)
4143
{
4244
return LoadResourceString(name, Map(values));
4345
}
4446

47+
[RequiresUnreferencedCode("Calls System.ComponentModel.TypeDescriptor.GetProperties(Object)")]
4548
private static IDictionary<string, object> Map(object values)
4649
{
4750
var dictionary = values as IDictionary<string, object>;

src/IdentityManager2/Assets/EmbeddedHtmlResult.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Text;
1+
using System.Diagnostics.CodeAnalysis;
2+
using System.Text;
23
using System.Text.Json;
34
using System.Threading.Tasks;
45
using IdentityManager2.Api.Models;
@@ -8,6 +9,7 @@
89

910
namespace IdentityManager2.Assets
1011
{
12+
[RequiresUnreferencedCode("Calls System.ComponentModel.TypeDescriptor.GetProperties(Object)")]
1113
internal class EmbeddedHtmlResult : IActionResult
1214
{
1315
private readonly string path;

src/IdentityManager2/Core/Metadata/PropertyMetadata.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Diagnostics.CodeAnalysis;
34
using System.Linq;
45
using System.Linq.Expressions;
56
using System.Reflection;
@@ -101,6 +102,7 @@ public static PropertyMetadata FromProperty<TContainer>(
101102
return FromPropertyInfo(property, name, displayName, dataType, required);
102103
}
103104

105+
[RequiresUnreferencedCode("Uses type.GetProperties")]
104106
public static PropertyMetadata FromPropertyName<T>(
105107
string propertyName,
106108
string name = null,
@@ -142,16 +144,19 @@ public static PropertyMetadata FromPropertyInfo(
142144
};
143145
}
144146

147+
[RequiresUnreferencedCode("Uses type.GetProperties")]
145148
public static IEnumerable<PropertyMetadata> FromType<T>()
146149
{
147150
return FromType(typeof(T), new string[0]);
148151
}
149152

153+
[RequiresUnreferencedCode("Uses type.GetProperties")]
150154
public static IEnumerable<PropertyMetadata> FromType<T>(params string[] propertiesToExclude)
151155
{
152156
return FromType(typeof(T), propertiesToExclude);
153157
}
154158

159+
[RequiresUnreferencedCode("Uses type.GetProperties")]
155160
public static IEnumerable<PropertyMetadata> FromType<T>(params Expression<Func<T, object>>[] propertyExpressionsToExclude)
156161
{
157162
var propertiesToExclude = new List<string>();
@@ -175,6 +180,7 @@ public static IEnumerable<PropertyMetadata> FromType<T>(params Expression<Func<T
175180
return FromType(typeof(T), propertiesToExclude.ToArray());
176181
}
177182

183+
[RequiresUnreferencedCode("Uses type.GetProperties")]
178184
public static IEnumerable<PropertyMetadata> FromType(Type type, params string[] propertiesToExclude)
179185
{
180186
if (type == null) throw new ArgumentNullException("PropertyMetadata::FromType::type is unassigned");

0 commit comments

Comments
 (0)