从类型进行类型转换.从类型转换为模型

本文关键字:类型转换 模型 类型 | 更新日期: 2023-09-27 18:07:07

我有一个模型,我得到的Type。模型为Type BasePage。我可以将其转换为Type类型吗?这个页面可以有10种不同的类型,所以我真的会从Type的强制转换中受益。

Type pageType = page.GetType();
//this is what im trying to do but from the Type instead
var newPageOfType = (pageType)pageToCast; //I would usually use this Typecast


用适当的示例代码更新了我的问题。所有的pageType类型都来自同一个BasePage

从类型进行类型转换.从类型转换为模型

最常见的方法是实际执行强制类型转换,并查看是否成功,如下所示:

var newPage = page as SomeDerivedPageClass;
if (newPage != null)
{
    // the cast succeeeded, page was actually of the derived type
}
else
    // the passed object wasn't what you were expecting. ignore it,
    // throw an error, log the error, whatever is appropriate.

可以使用Convert。只要value参数实现了IConvertible,就可以更改类型

Type pageType = page.GetType();
var newPageOfType = Convert.ChangeType(pageToCast, pageType);