Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过实例化嵌套类的类型来解决问题_C#_Reflection - Fatal编程技术网

C# 通过实例化嵌套类的类型来解决问题

C# 通过实例化嵌套类的类型来解决问题,c#,reflection,C#,Reflection,我试图使用反射在C中实例化一些自定义类型。 我有以下课程: public class FKey<Type> : IFKey { public class Opt { } // with no properties ... public string MyProp1 { get; set; } public string MyProp2 { get; set; } ... } 实例化FKey类型的整个过程都很好,但当我尝试对FKey.Op

我试图使用反射在C中实例化一些自定义类型。 我有以下课程:

public class FKey<Type> : IFKey
{   
    public class Opt { } // with no properties
    ...
    public string MyProp1 { get; set; }
    public string MyProp2 { get; set; }
    ...
}
实例化FKey类型的整个过程都很好,但当我尝试对FKey.Opt类型进行实例化时,问题出现了,这会引发InnerException:

你知道我怎样才能解决这个问题吗

提前感谢,

感谢@Panagiotis和@Hasan的评论,我成功地解决了这个问题:

public class FKey<Type> : BaseFKey 
{ 
   public class Opt : BaseFKey { } // with no properties
}

public class BaseFKey<Type> : IFKey
{   
    ...
    public string MyProp1 { get; set; }
    public string MyProp2 { get; set; }
    ...
}

谢谢

为什么它会困扰你呢?错误很明显-Opt没有实现IFKey,所以它不能被强制转换。你想干什么?为什么你有一个没有成员的类?嵌套类,在你的例子中,Opt并没有神奇地实现IFKey。因此,当您尝试将其强制转换为IFKey时,会出现异常
InvalidCastException: Unable to cast object of type 'Opt[wap.database.model.Models+ArticleItems]' to type 'shared.models.database.IFKey'.
public class FKey<Type> : BaseFKey 
{ 
   public class Opt : BaseFKey { } // with no properties
}

public class BaseFKey<Type> : IFKey
{   
    ...
    public string MyProp1 { get; set; }
    public string MyProp2 { get; set; }
    ...
}