Frage

muss ich einige Mitglieder Zugriff markiert interne dass in einem Dritten Versammlung deklariert sind.

Ich mag einen Wert von einer bestimmten internen Eigenschaft in einer Klasse zurückzukehren. Dann würde Ich mag einen Wert aus einer Eigenschaft auf, dass zurückgegebene Wert abzurufen. Allerdings sind diese Eigenschaften Rückgabetypen, die auch intern sind und in dieser dritten Parteiversammlung erklärt.

Die Beispiele, dies zu tun ich gesehen habe, sind einfach und zeigen nur int oder Bool zurück. Kann jemand bitte einig Beispiel-Code geben, der diesen komplexeren Fall behandelt?

War es hilfreich?

Lösung

Sie halten gerade auf dem zurückgegebenen Wert Graben (oder die PropertyType der Propertyinfo):

u

sing System;
using System.Reflection;
public class Foo
{
    public Foo() {Bar = new Bar { Name = "abc"};}
    internal Bar Bar {get;set;}
}
public class Bar
{
    internal string Name {get;set;}
}
static class Program
{
    static void Main()
    {
        object foo = new Foo();
        PropertyInfo prop = foo.GetType().GetProperty(
            "Bar", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
        object bar = prop.GetValue(foo, null);
        prop = bar.GetType().GetProperty(
            "Name", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
        object name = prop.GetValue(bar, null);

        Console.WriteLine(name);
    }
}

Andere Tipps

Sie können es immer als ein Objekt abrufen und die Reflexion über die zurückgegebene Art verwenden, um seine Methoden aufrufen und Zugriff auf seine Eigenschaften.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top