C# Reflexion nicht ein Funktionsparameterattribut (Einheit) [geschlossen]C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 C# Reflexion nicht ein Funktionsparameterattribut (Einheit) [geschlossen]

Post by Anonymous »

Ich kann es nicht zum Laufen bringen. Ich möchte das im Parameter des Testmethode festgelegte Attributs finden. Aber es findet nichts, nicht mit Parameterinfo.Customattributes. RUNTESTMETHOD Ich erhalte nur Methodenname und Parametername richtig, aber nichts anderes wird gedruckt. < /P>

Code: Select all

public class Test {

public static void RunTestMethod()
{
var testMethodInfo = typeof(TestClass).GetMethod("TestMethod");
if (testMethodInfo != null)
{
Console.WriteLine($"Method Name: {testMethodInfo.Name}");

foreach (var parameterInfo in testMethodInfo.GetParameters())
{
Console.WriteLine($"Parameter Name: {parameterInfo.Name}");

foreach (var attr in parameterInfo.GetCustomAttributes(false))
{
Console.WriteLine($"Found attribute: {attr.GetType()} in parameter name: {parameterInfo.Name}");
}

foreach (var attrData in parameterInfo.GetCustomAttributesData())
{
Console.WriteLine($"Found attribute data: {attrData.AttributeType}");
}
}
}

}

}

// Class that uses the attribute on one method
public class TestClass {

public void TestMethod([TestAttr] int testParam)
{

}

}

// Custom Attribute
[UnityEngine.Scripting.Preserve]
public class TestAttrAttribute : Attribute
{

}
< /code>
[bearbeiten] Die Frage wurde geschlossen, da sie in einer .NET -Geige reproduziert werden kann.
Nun. Ich habe versucht, die Zeile zu ändern, in der das Attribut das System verwendet.parameterInfo.GetCustomAttribute()

und es funktioniert in der Geige. Ich habe es in meinem Einheitsprojekt geändert, das nur eine Datei (2022.3.60f1) hat und das Skript über [Menuitem ("Test/Run -Reflexionstest") über dem RunTestMethod () ausführt und funktioniert nicht. Was passiert mit Reflexion und Einheit, dass es nicht richtig funktioniert ?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post