C\#반사 와 사용자 정의 속성 을 통 해 호출 방법
9055 단어 C#
특정 사용 방법 에 대해 서 는 특별 속성 을 표시 할 수 있 습 니 다.
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Reflection;
namespace ReflectMethod
{
//
[AttributeUsage(AttributeTargets.All)]
class GameSystem : Attribute// GameSystemAttribute
{
public GameSystem() { }
}
// player
class player
{
//GameSystem , GameSystemAttribute
[GameSystem]// start
public void start()
{
Console.WriteLine("GameSystem start");
}
public void Updata()
{
Console.WriteLine("my updata");
}
}
class Program
{
static void Main(string[] args)
{
//
Type[] types = typeof(Program).Assembly.GetTypes();
foreach (Type t in types)
{
AttributeLogic(t);
}
Console.ReadKey();
}
static void AttributeLogic(Type type)
{
//
foreach (MethodInfo method in type.GetMethods())
{
//
foreach (Attribute attr in method.GetCustomAttributes())
{
//
if (attr is GameSystem)
{
//
object reflectTest = Activator.CreateInstance(type);
//
MethodInfo methodInfo = type.GetMethod(method.Name);
//
methodInfo.Invoke(reflectTest, null);
}
}
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.