特定の属性を持っているかどうかを調べるためにstringからクラスインスタンスが必要です。 私はこの.NetCoreでクラスのインスタンスを動的に取得
Type type = Assembly.GetEntryAssembly().GetType("ClassName");
object entity = Activator.CreateInstance(type);
var tableAttribute = entity.GetType().GetTypeInfo().GetCustomAttribute<TableAttribute>();
のようにそれを試してみましたが、型がnullの場合? TestConsoleAppで
全体コード:
using System;
using System.ComponentModel;
using System.Reflection;
namespace AssemblyTest
{
[Description("TestDescription")]
public class TestClass { }
//
public class Program
{
public static void Main(string[] args)
{
Type type = Assembly.GetEntryAssembly().GetType("TestClass");
if(type == null)
Console.WriteLine("Object type is NULL.");
else
Console.WriteLine("Object type has value.");
object entity = Activator.CreateInstance(type);
var tableAttribute = entity.GetType().GetTypeInfo().GetCustomAttribute<DescriptionAttribute>();
}
}
}
タイプが現在のアセンブリにあり、別のアセンブリではありませんか? –
それは同じプロジェクトです。 新しいプロジェクト - > .NETコア - >コンソールアプリケーションを作成するだけです。 AssemblyTestという名前を付けました。コード全体を追加して質問が更新されました。 – borisdj