0

我该如何解决这个错误?

无法创建“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];
            }
        }
    }

在此处输入图像描述

4

0 回答 0