Thomas Darimont
Erfahrenes Mitglied
Hallo,
mit folgendem Beispiel kann man alle Methoden ermitteln die von einem bestimmten Interface gefordert werden:
Ausgabe:
Gruß Tom
mit folgendem Beispiel kann man alle Methoden ermitteln die von einem bestimmten Interface gefordert werden:
C#:
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace De.Tutorials.Training
{
public class GenericsTest
{
public static void Main(string[] args)
{
PrintInterfaceImplementationDetailsOf(typeof(Operation));
}
private static void PrintInterfaceImplementationDetailsOf(Type type)
{
Console.WriteLine("Interface implementation details of: {0}", type.FullName);
foreach (Type interfaceType in type.GetInterfaces())
{
Console.WriteLine("{0} provides: ", interfaceType.FullName);
InterfaceMapping interfaceMapping = type.GetInterfaceMap(interfaceType);
for (int i = 0; i < interfaceMapping.InterfaceMethods.Length; i++)
{
Console.WriteLine("Interface Method: {0} -> Implementation: {1} TargetType: {2}",
interfaceMapping.InterfaceMethods[i],
interfaceMapping.TargetMethods[i],
interfaceMapping.TargetType.FullName);
}
}
}
}
public abstract class Operation : IExtendedOperation
{
#region IExtendedOperation Members
public void ExtendedOperation()
{
throw new Exception("The method or operation is not implemented.");
}
#endregion
#region IOperation Members
void IOperation.Operation()
{
throw new Exception("The method or operation is not implemented.");
}
#endregion
}
public interface IOperation
{
void Operation();
}
public interface IExtendedOperation : IOperation
{
void ExtendedOperation();
}
}
Ausgabe:
Code:
Interface implementation details of: De.Tutorials.Training.Operation
De.Tutorials.Training.IExtendedOperation provides:
Interface Method: Void ExtendedOperation() -> Implementation: Void ExtendedOperation() TargetType: De.Tutorials.Training.Operation
De.Tutorials.Training.IOperation provides:
Interface Method: Void Operation() -> Implementation: Void De.Tutorials.Training.IOperation.Operation() TargetType: De.Tutorials.Training.Operation
Drücken Sie eine beliebige Taste . . .
Gruß Tom