我该如何解决这个错误?
无法创建“Beta.Module.Models.Base.IdentificationCode”类型的实例。原因:“值不能为空。(参数'classInfo')”
我使用的是 DevExpress 版本21.2
,项目类型是 Windows-Application。
我不想在项目中使用域组件 (DC)。
错误详细信息:
值不能为空。(参数“类信息”)
在 DevExpress.Xpo.ObjectsQuery..ctor(XPClassInfo classInfo,CriteriaOperator 条件,SortingCollection 排序,Int32 skipSelectedRecords,Int32 topSelectedRecords,CollectionCriteriaPatcher collectionCriteriaPatcher,布尔力)
在 DevExpress.Xpo.Session.GetObjects(XPClassInfo classInfo,CriteriaOperator 标准,SortingCollection 排序,Int32 skipSelectedRecords,Int32 topSelectedRecords,布尔 selectDeleted,布尔力)在 DevExpress.Xpo.Session.GetObjects(XPClassInfo classInfo,CriteriaOperator 标准,SortingCollection 排序,Int32 topSelectedRecords , Boolean selectDeleted, Boolean force) at Beta.Module.Logics.BaseIdentificationCodeLogic.AfterConstruction(IBaseIdentificationCode IdentificationCode, IObjectSpace objectSpace) 在 C:\WorkSpace\projects\recade.code\Beta\Beta.Module\Logics\IdentificationCodeLogic.cs:line 19在 C:\WorkSpace\projects\recade.code\Beta\Beta.Module\Models\Base\IdentificationCode.cs: Beta.Module.Models.Base 中的 Beta.Module.Models.Base.IdentificationCode.InvokeAfterConstructionLogic() 处.XPEntity。C:\WorkSpace\projects\recade.code\Beta\Beta.Module\Models\Base\XPEntity.cs 中的 AfterConstruction():DevExpress.Xpo.PersistentBase.Init(Session session, XPClassInfo classInfo) 的第 28 行在 DevExpress.Xpo .PersistentBase..ctor(Session session) at DevExpress.Xpo.XPBaseObject..ctor(Session session) at DevExpress.Xpo.XPCustomObject..ctor(Session session) at Beta.Module.Models.Base.XPEntity..ctor(Session session) 在 C:\WorkSpace\projects\recade.code\Beta\Beta.Module\Models\Base\XPEntity.cs: Beta.Module.Models.Base.IdentificationCode..ctor(Session session) 中的第 10 行: \WorkSpace\projects\recade.code\Beta\Beta.Module\Models\Base\IdentificationCode.cs:第 27 行Xpo.PersistentBase..ctor(Session session) at DevExpress.Xpo.XPBaseObject..ctor(Session session) at DevExpress.Xpo.XPCustomObject..ctor(Session session) at DevExpress.Module.Models.Base.XPEntity..ctor(会话会话)在 C:\WorkSpace\projects\recade.code\Beta\Beta.Module\Models\Base\XPEntity.cs: Beta.Module.Models.Base.IdentificationCode..ctor(Session session) 在 C 中的第 10 行:\WorkSpace\projects\recade.code\Beta\Beta.Module\Models\Base\IdentificationCode.cs:第 27 行Xpo.PersistentBase..ctor(Session session) at DevExpress.Xpo.XPBaseObject..ctor(Session session) at DevExpress.Xpo.XPCustomObject..ctor(Session session) at DevExpress.Module.Models.Base.XPEntity..ctor(会话会话)在 C:\WorkSpace\projects\recade.code\Beta\Beta.Module\Models\Base\XPEntity.cs: Beta.Module.Models.Base.IdentificationCode..ctor(Session session) 在 C 中的第 10 行:\WorkSpace\projects\recade.code\Beta\Beta.Module\Models\Base\IdentificationCode.cs:第 27 行\WorkSpace\projects\recade.code\Beta\Beta.Module\Models\Base\IdentificationCode.cs:第 27 行\WorkSpace\projects\recade.code\Beta\Beta.Module\Models\Base\IdentificationCode.cs:第 27 行
错误发生在classInfo
定义变量的代码行中:
public static class BaseIdentificationCodeLogic
{
public static void AfterConstruction(IBaseIdentificationCode identificationCode, IObjectSpace objectSpace)
{
XPClassInfo classInfo = XpoTypesInfoHelper.GetXpoTypeInfoSource().XPDictionary.QueryClassInfo(typeof(IBaseIdentificationCodeType));
var idTypes = ((XPObjectSpace)objectSpace).Session.GetObjects(classInfo,
CriteriaOperator.Parse("[Name] = ?", "Standard"),
null,
1,
false,
true)
?.Cast<IBaseIdentificationCodeType>()?
.ToList();
if (idTypes != null && idTypes.Count >= 1)
{
identificationCode.IdentificationCodeType = (IdentificationCodeType)idTypes[0];
}
}
}