gpt4 book ai didi

c# - GetType().Name : for delete proxy from end of Name 的替代方法是什么

转载 作者:行者123 更新时间:2023-11-30 21:10:58 25 4
gpt4 key购买 nike

我有一个通过 NHibernate 实现并使用延迟加载的项目。当然已经在两个项目中实现:一个项目用于 NHibernate 实现,第二个项目用于 Domain 实现。我在域项目中有一个实体,名称为:Person

Public Person : EntityBase
{

}

我通过这段代码加载了一个实体:

TEntity entity = SessionInstance.Load<TEntity>(110);

在我的域项目中,通过此代码使用此实体:

string strName = entity.GetType().Name;
if(strName == "Person")
{
//My Code
}

问题就在这里。 strName 在某些阶段是 "Person",这是正确的但有时 strName"PersonProxy"

我该怎么办?

最佳答案

您这样做是为了避免对 Person 字符串进行硬编码吗?如果是这样,我会执行以下操作:

typeof(Person).Name

如果它需要是动态的,也许这行得通

    public String GetDomainName(Type type)
{
var isNotFromDomain = type.Namespace != typeof(Person).Namespace;
if (isNotFromDomain)
return GetDomainName(type.BaseType);
return type.Name;
}

最后,根据您更新后的代码,我建议您考虑以下事项。我喜欢避免硬编码字符串。

if (entity is Person)
{
//My Code
}

关于c# - GetType().Name : for delete proxy from end of Name 的替代方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8207447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com