[reflection] Coop handles icalls in System.Reflection and System.RuntimeTypeHandle...
[mono.git] / mcs / class / referencesource / System.Activities.Presentation / System.Activities.Presentation / System / Activities / Presentation / Hosting / MultiTargetingSupportService.cs
1 //----------------------------------------------------------------
2 // <copyright company="Microsoft Corporation">
3 //     Copyright (c) Microsoft Corporation.  All rights reserved.
4 // </copyright>
5 //----------------------------------------------------------------
6
7 namespace System.Activities.Presentation.Hosting
8 {
9     using System.Diagnostics.CodeAnalysis;
10     using System.Reflection;
11     using System.Runtime;
12
13     /// <summary>
14     /// abstract class for multi-targeting support service
15     /// </summary>
16     [SuppressMessage(FxCop.Category.Naming, FxCop.Rule.IdentifiersShouldBeSpelledCorrectly,
17                      Justification = "MultiTargetingSupportService is the correct name")]
18     public abstract class MultiTargetingSupportService : IMultiTargetingSupportService
19     {
20         /// <summary>
21         /// Get reflection assembly given an assembly name
22         /// </summary>
23         /// <param name="targetAssemblyName">target assembly name</param>
24         /// <returns>reflection assembly if target assembly name could be resolved</returns>
25         public abstract Assembly GetReflectionAssembly(AssemblyName targetAssemblyName);
26
27         /// <summary>
28         /// Get runtime type given a reflection type
29         /// </summary>
30         /// <param name="reflectionType">reflection type</param>
31         /// <returns>runtime type associated with the reflection type</returns>
32         public abstract Type GetRuntimeType(Type reflectionType);
33
34         /// <summary>
35         /// Check if a given type is supported by target framework
36         /// </summary>
37         /// <param name="type">type to be checkec</param>
38         /// <returns>true is type is supported by target framework</returns>
39         public abstract bool IsSupportedType(Type type);
40
41         /// <summary>
42         /// Get the reflection type give an object type
43         /// </summary>
44         /// <param name="objectType">object type</param>
45         /// <returns>reflection type</returns>
46         public abstract Type GetReflectionType(Type objectType);
47     }
48 }