相关疑难解决方法(0)

从C#中的字符串名称获取Class对象

我正在使用C#开发移动应用程序(Monotouch,monodroid).我有一个这个定义的类:

public class TempIOAddOn : BaseIOAddOn 
{
    public TempIOAddOn ()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用此代码通过其字符串名称访问类的实例:

BaseIOAddOn tempIOAddOn;
            Type t= Type.GetType("TempIOAddOn" );
            tempIOAddOn  = (BaseIOAddOn)Activator.CreateInstance(t);
Run Code Online (Sandbox Code Playgroud)

但是在执行之后,t是null.

我也试过下面的代码:

BaseIOAddOn tempIOAddOn;
            tempIOAddOn = (BaseIOAddOn )System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("TempIOAddOn" );
Run Code Online (Sandbox Code Playgroud)

但我再次面对null.tempIOAddOn是null.

我是怎么了?

c# reflection xamarin.ios xamarin.android

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

如何通过在String中指定其名称来获取枚举类型

假设我有这个枚举:

namespace BusinessRule
{
    public enum SalaryCriteria : int
        {
            [EnumDisplayName(DisplayName = "Per Month")]
            Per_Month = 1,
            [EnumDisplayName(DisplayName = "Per Year")]
            Per_Year = 2,
            [EnumDisplayName(DisplayName = "Per Week")]
            Per_Week = 3
        }
}
Run Code Online (Sandbox Code Playgroud)

我的名字在一个字符串变量中,如:

string EnumAtt = "SalaryCriteria";
Run Code Online (Sandbox Code Playgroud)

我试图检查这个枚举是否由这个名称定义,如果定义我想得到它的instance.i尝试这样,但type返回null:

        string EnumAtt = "SalaryCriteria";
        Type myType1 = Type.GetType(EnumAtt);
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

        string EnumAtt = "BusinessRule.SalaryCriteria";
        Type myType1 = Type.GetType(EnumAtt);
Run Code Online (Sandbox Code Playgroud)

任何想法我怎么能实现这一点.

c# reflection enums types

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

在运行时提取类型

我有一个类型名称作为输入传递."MyApp.Modules.Common.contact".

使用Activator.CreateInstance我如何在我正在使用的方法中构造此类型.如果我这样做的话

Type typ = Type.GetType("MyApp.Modules.Common.contact")
Run Code Online (Sandbox Code Playgroud)

典型值始终为空.我该如何解决.请帮忙.

.net c# reflection

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

不能从字符串创建枚举类型

我的函数将枚举类型获取为字符串,我需要对其进行验证。

为什么parsedType(s)在这里为null?

var parsedType1 = Type.GetType("System.Windows.TextAlignment.Left");
var parsedType2 = Type.GetType("System.Windows.TextAlignment");
Run Code Online (Sandbox Code Playgroud)

虽然这个有效吗?

var parsedType3 = Type.GetType("System.String");
Run Code Online (Sandbox Code Playgroud)

c# enums

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

标签 统计

c# ×4

reflection ×3

enums ×2

.net ×1

types ×1

xamarin.android ×1

xamarin.ios ×1