Изменения документа Сценарии

Редактировал(а) Alexandr Fokin 2026/03/17 19:05

От версии 1.1
отредактировано Alexandr Fokin
на 2022/12/07 07:44
Изменить комментарий: К данной версии нет комментариев
К версии 1.10
отредактировано Alexandr Fokin
на 2026/03/17 19:01
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -1,6 +1,41 @@
1 -|(% style="width:123px" %) |(% style="width:1340px" %)Find a private field with Reflection?
1 +|(% style="width:174px" %)Поиск типа|(% style="width:1348px" %)(((
2 +|Find Types in All Assemblies
3 +[[https:~~/~~/stackoverflow.com/questions/4692340/find-types-in-all-assemblies>>https://stackoverflow.com/questions/4692340/find-types-in-all-assemblies]]
4 +|{{code language="c#"}}var assemblyQualifiedName = type.AssemblyQualifiedName;
5 +Type.GetType(assemblyQualifiedName, throwOnError: false){{/code}}
6 +)))
7 +|(% style="width:174px" %) |(% style="width:1348px" %)(((
8 +Find a private field with Reflection?
2 2  [[https:~~/~~/stackoverflow.com/questions/95910/find-a-private-field-with-reflection>>https://stackoverflow.com/questions/95910/find-a-private-field-with-reflection]]
3 -|(% style="width:123px" %) |(% style="width:1340px" %)
4 -|(% style="width:123px" %) |(% style="width:1340px" %)
5 5  
11 +Using C# reflection to call a constructor
12 +[[https:~~/~~/stackoverflow.com/questions/3255697/using-c-sharp-reflection-to-call-a-constructor>>https://stackoverflow.com/questions/3255697/using-c-sharp-reflection-to-call-a-constructor]]
13 +
14 +Invoke method by MethodInfo
15 +[[https:~~/~~/stackoverflow.com/questions/919826/invoke-method-by-methodinfo>>https://stackoverflow.com/questions/919826/invoke-method-by-methodinfo]]
16 +)))
17 +|(% style="width:174px" %)Получение основного типа для nullable структур.|(% style="width:1348px" %){{code language="c#"}}PropertyInfo prop;
18 +var type = Nullable.GetUnderlyingType(prop.PropertyType)
19 + ?? prop.PropertyType;{{/code}}
20 +|(% style="width:174px" %)Формирование конкретного типа на основе Generic|(% style="width:1348px" %)(((
21 +Type.MakeGenericType
22 +[[https:~~/~~/learn.microsoft.com/ru-ru/dotnet/api/system.type.makegenerictype?view=net-7.0>>https://learn.microsoft.com/ru-ru/dotnet/api/system.type.makegenerictype?view=net-7.0]]
23 +
24 +C# Type MakeGenericType
25 +[[http:~~/~~/www.java2s.com/Tutorials/CSharp/System/Type/C_Type_MakeGenericType.htm>>http://www.java2s.com/Tutorials/CSharp/System/Type/C_Type_MakeGenericType.htm]]
26 +)))
27 +|(% style="width:174px" %)Ref и Out параметры метода.|(% style="width:1348px" %)(((
28 +| |При передаче параметра с использованием out и ref, в качестве типа используется дополнительная обертка.
29 +Критерий передачи {{code language="c#"}}parameter.ParameterType.IsByRef{{/code}}.
30 +У обернутого типа значение IsValueType будет true даже для структур.
31 +| |What is the opposite of Type.MakeByRefType
32 +[[https:~~/~~/stackoverflow.com/questions/607130/what-is-the-opposite-of-type-makebyreftype>>https://stackoverflow.com/questions/607130/what-is-the-opposite-of-type-makebyreftype]]
33 +| |{{code language="c#"}}// Получение типа обертки.
34 +var refType = typeof(int).MakeByRefType()
35 +
36 +// Разворачивание, получение основного типа.
37 +// Также флаг refType.HasElementType.
38 +refType.GetElementType();{{/code}}
39 +)))
40 +
6 6