从动态类型中获取实际模型类型
Get actual model type from dynamic type
我的数据库中有三个 table(学生、课程、全部)。当我在 Student & Course table 中添加任何数据时,数据也会添加到 All table.
中
因此,我正在使用 动态 类型数据来传递学生和课程类型数据以保存在所有 table.
中
public IActionResult Add(Student model)
{ ...
bool studentData = _studentService.Add(model); //saving in Student table
bool allData= _allService.AddAll(model); // passing 'Student' type data
...
}
在 All 服务中,我有一个像这样的函数-
public bool AddAll(dynamic model) // 'Student' type data passed & received as dynamic
{...}
现在,我需要有关 Student 模型类型的详细信息(table 名称、找到的总数据等)。
有什么办法可以得到吗?如果我使用动态数据类型,是否可以获取学生或课程模型类型信息?
如有任何建议或帮助,我们将不胜感激 :) 在此先致谢!
此示例是否演示了您要执行的操作?
// Some dummy classes
public class Student
{
public string Name { get; set; }
public Student(string name)
{
Name = name;
}
}
public class Course
{
public string Title { get; set; }
public Course(string title)
{
Title = title;
}
}
// put the method somewhere
private string TypeCasting(dynamic myContent)
{
if (myContent is Student littleStudent)
{
return littleStudent.Name;
}
if (myContent is Course someLovelyCourse)
{
return someLovelyCourse.Title;
}
return string.Empty;
}
// Example using
var student = TypeCasting(new Student("fossil"));
var course = TypeCasting(new Course("type casting"));
如果你想获取模型类型,你可以使用model.GetType()
,你可以使用model.GetType().Name
获取模型类型名称,这里是一个演示:
型号:
public class Student
{
public int StudentId { get; set; }
public string StudentName { get; set; }
}
public class Course
{
public int CourseId { get; set; }
public string CourseName { get; set; }
}
操作:
public void Add(Student model)
{
//Student s = new Student { StudentId=1, StudentName="s1" };
Course c = new Course { CourseId=1,CourseName="c1" };
bool allData = AddAll(c);
}
public bool AddAll(dynamic model)
{
var type = model.GetType();
var typeName = type.Name;
return true;
}
结果:
我的数据库中有三个 table(学生、课程、全部)。当我在 Student & Course table 中添加任何数据时,数据也会添加到 All table.
中因此,我正在使用 动态 类型数据来传递学生和课程类型数据以保存在所有 table.
中public IActionResult Add(Student model)
{ ...
bool studentData = _studentService.Add(model); //saving in Student table
bool allData= _allService.AddAll(model); // passing 'Student' type data
...
}
在 All 服务中,我有一个像这样的函数-
public bool AddAll(dynamic model) // 'Student' type data passed & received as dynamic
{...}
现在,我需要有关 Student 模型类型的详细信息(table 名称、找到的总数据等)。
有什么办法可以得到吗?如果我使用动态数据类型,是否可以获取学生或课程模型类型信息?
如有任何建议或帮助,我们将不胜感激 :) 在此先致谢!
此示例是否演示了您要执行的操作?
// Some dummy classes
public class Student
{
public string Name { get; set; }
public Student(string name)
{
Name = name;
}
}
public class Course
{
public string Title { get; set; }
public Course(string title)
{
Title = title;
}
}
// put the method somewhere
private string TypeCasting(dynamic myContent)
{
if (myContent is Student littleStudent)
{
return littleStudent.Name;
}
if (myContent is Course someLovelyCourse)
{
return someLovelyCourse.Title;
}
return string.Empty;
}
// Example using
var student = TypeCasting(new Student("fossil"));
var course = TypeCasting(new Course("type casting"));
如果你想获取模型类型,你可以使用model.GetType()
,你可以使用model.GetType().Name
获取模型类型名称,这里是一个演示:
型号:
public class Student
{
public int StudentId { get; set; }
public string StudentName { get; set; }
}
public class Course
{
public int CourseId { get; set; }
public string CourseName { get; set; }
}
操作:
public void Add(Student model)
{
//Student s = new Student { StudentId=1, StudentName="s1" };
Course c = new Course { CourseId=1,CourseName="c1" };
bool allData = AddAll(c);
}
public bool AddAll(dynamic model)
{
var type = model.GetType();
var typeName = type.Name;
return true;
}
结果: