相关疑难解决方法(0)

Type.GetType("namespace.abClassName")返回null

这段代码:

Type.GetType("namespace.a.b.ClassName")
Run Code Online (Sandbox Code Playgroud)

回报null.

我在使用中:

using namespace.a.b;
Run Code Online (Sandbox Code Playgroud)

更新:

类型存在,它在不同的类库中,我需要通过字符串名称来获取它.

c# reflection

198
推荐指数
10
解决办法
16万
查看次数

在linq中将实体类型作为参数传递

我如何在linq中将实体类型作为参数传递?

例如,该方法将接收实体名称值作为字符串,我想将实体名称传递给下面的linq查询.是否可以使linq查询通用?

public ActionResult EntityRecords(string entityTypeName)
{
    var entityResults = context.<EntityType>.Tolist();
    return View(entityResults);
}
Run Code Online (Sandbox Code Playgroud)

我想将实体类型作为参数传递并返回所有属性值.

此外,是否可以根据某些属性过滤结果?

c# linq generics reflection c#-4.0

9
推荐指数
1
解决办法
648
查看次数

如何将ConfigurationSection属性作为System.Type获取

我想定义一个自定义配置部分,并且有一个属性不会产生字符串,而是一个system.type(如果用户输入了一堆垃圾,则为null)

例如:

<myCustomConfig myAnnoyingType="System.String" />
Run Code Online (Sandbox Code Playgroud)

在C#中(在当前的现实世界中)

[ConfigurationProperty("myAnnoyingType")]
public string MyAnnoyingType
{
   get { return (string)this["myAnnoyingType"]; }
}

// else where in the app
var stringType = thatConfig.MyAnnoyingType
var actualType = Type.GetType(stringType);
// wow that was boring.
Run Code Online (Sandbox Code Playgroud)

在C#中(在理想世界中)

[ConfigurationProperty("myAnnoyingType")]
public Type MyAnnoyingType
{
    get { return (Type)this["myAnnoyingType"]; }
}
Run Code Online (Sandbox Code Playgroud)

我想要的不是必须将项目保存为C#中的字符串,然后将其转换为应用程序中的Type; 我希望这是作为ConfigurationManager职责的一部分自动完成的.

这可能吗?如果必须的话,我可以使用TypeConverter,只是将它保持为字符串似乎很弱,然后在应用程序中进行类型查找.这不难做到,当我知道我正在寻找一种类型时,似乎毫无意义,必须明确地做它的价值.

c# configurationmanager

7
推荐指数
1
解决办法
754
查看次数

如何从枚举类型的名称和int中获取枚举名称

从应用程序中的另一个层,我可以获取枚举类型的名称和整数值.如何使用此数据来获取该枚举的该值的字符串表示形式.

例如,如果我有一个枚举:

public enum Cheese
{
    Edam = 1,
    Cheddar = 3,
    Brie = 201,
    RedLeicester = 1001
}
Run Code Online (Sandbox Code Playgroud)

我可用的数据是

string dataType = "Cheese";
int dataValue = 3;
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到结果:

"Cheddar"
Run Code Online (Sandbox Code Playgroud)

c# enums

2
推荐指数
1
解决办法
706
查看次数

为什么GetType()无法识别此类型?

这是代码:

public class Program
{
    public static void Main(string[] args)
    {
       Test test = new Test();
    }
}

public class Test
{
    public Test() {
        Console.WriteLine("type: " + Type.GetType("Registration"));        
    }
}

public class Registration
{
    public int mAge;
    public string mName;

    public Registration() {}
}  
Run Code Online (Sandbox Code Playgroud)

当它尝试获取类型时Registration,它返回null.所以,两种.Name.AssemblyQualifiedName无法访问.

AssemblyQualifiedName只有GetType()不退货我才能提供null.

为什么GetType()返回null?希望问题很清楚.

c# types

1
推荐指数
1
解决办法
121
查看次数

将字符串文字转换为 .NET 数据类型以执行类型验证

假设在运行时我得到这样的值:

  string expectedDataType = "System.Int32";
    object givenValue = "123 Not An Int32";
Run Code Online (Sandbox Code Playgroud)

所以我想知道它的值是否givenValue 与我们期望的类型相同,expectedDataType 所以在这种情况下它应该返回,false因为该值不是integer.

如果不是在运行时,我可能可以使用该is 运算符,但我不确定如何reflection在运行时使用某种操作符来做到这一点。

c#

1
推荐指数
1
解决办法
52
查看次数

标签 统计

c# ×6

reflection ×2

c#-4.0 ×1

configurationmanager ×1

enums ×1

generics ×1

linq ×1

types ×1