0

我正在做一个项目,我想将代码从 17.2 版重构到 21.2 版

为此,我采用了这种方式,将域组件 (DC) 接口迁移到纯 XPO 类

当我运行该项目时,我收到此错误:

CannotResolveClassInfoException:无法解析类型“[Main.Alpha.Module, Version=1.0.7961.26051, Culture=neutral, PublicKeyToken=null]Main.Alpha.Module.Models.Base.Interfaces.IBaseIdentificationCode”的 ClassInfo。

无法解决类信息异常

我该如何解决这个错误?

IBaseIdentificationCode:

[DefaultClassOptions]
[NavigationItem("Base")]
[XafDisplayName("IdentificationCode")]
[ImageName("BO_Sale_v92")]
public interface IBaseIdentificationCode
{
    string Name { get; set; }

    IdentificationCodeType IdentificationCodeType { get; set; }

    //[XafDisplayName("Mailing")]
    IBaseReceiveObject ReceiveObject { get; set; }

    [XafDisplayName("Mailing")]
    public Mailing Mailing { get; set; }
}

识别码:

[DefaultClassOptions]
    public class IdentificationCode : XPEntity, IBaseIdentificationCode,
        IPersistentInterface<IBaseIdentificationCode>,
        IPersistentInterfaceData<IBaseIdentificationCode>,
        IPropertyChangeNotificationReceiver
    {
        public IdentificationCode(Session session) : base(session)
        {
            CreateLogics();
        }

        IPersistentInterfaceData<IBaseIdentificationCode> IPersistentInterface<IBaseIdentificationCode>.PersistentInterfaceData => this;
        IBaseIdentificationCode IPersistentInterfaceData<IBaseIdentificationCode>.Instance => this;

        #region Properties

        string fName;
        public string Name
        {
            get { return fName; }
            set { SetPropertyValue<string>(nameof(Name), ref fName, value); }
        }

        IdentificationCodeType fIdentificationCodeType;
        [Size(36)]
        [Association(@"IdentificationCodeReferencesIdentificationCodeType")]
        public IdentificationCodeType IdentificationCodeType
        {
            get { return fIdentificationCodeType; }
            set { SetPropertyValue<IdentificationCodeType>(nameof(IdentificationCodeType), ref fIdentificationCodeType, value); }
        }

        public IBaseReceiveObject ReceiveObject { get; set; }
       

        Mailing fMailing;
        //[Size(36)]
        [Association(@"IdentificationCodeReferencesMailing")]
        public Mailing Mailing
        {
            get { return fMailing; }
            set { SetPropertyValue<Mailing>(nameof(Mailing), ref fMailing, value); }
        }

        #endregion

        #region Methods

        public override void AfterConstruction()
        {
            base.AfterConstruction();
            base.Oid = Guid.NewGuid();
            CreateAggregatedData();
            CreateLogics();
            InitializeDefaultValues();
            InvokeAfterConstructionLogic();
        }

        protected virtual void CreateLogics()
        {
        }

        void IPropertyChangeNotificationReceiver.PropertyChanging(string propertyName, object newValue)
        {
            OnChanging(propertyName, newValue);
        }

        protected virtual void OnChanging(string propertyName, object newValue)
        {
            if (!base.IsLoading)
            {
                InvokeBeforeChangeLogic(propertyName, newValue);
            }
        }

        protected virtual void InvokeBeforeChangeLogic(string propertyName, object newValue)
        {
        }

        void IPropertyChangeNotificationReceiver.PropertyChanged(string propertyName, object oldValue, object newValue)
        {
            OnChanged(propertyName, oldValue, newValue);
        }

        protected override void OnChanged(string propertyName, object oldValue, object newValue)
        {
            base.OnChanged(propertyName, oldValue, newValue);
            if (!base.IsLoading)
            {
                InvokeAfterChangeLogic(propertyName, oldValue, newValue);
            }
        }

        protected virtual void InvokeAfterChangeLogic(string propertyName, object oldValue, object newValue)
        {
        }

        protected virtual void CreateAggregatedData()
        {
        }

        protected virtual void InitializeDefaultValues()
        {
        }

        protected virtual void InvokeAfterConstructionLogic()
        {
            BaseIdentificationCodeLogic.AfterConstruction(this, XPObjectSpace.FindObjectSpaceByObject(this));
        }


        #endregion
    }

XP实体:

public class XPEntity : XPCustomObject, IEntity
    {
        public XPEntity(Session session) : base(session) { }

        private Guid fOid;

        [Key(true)]
        public Guid Oid
        {
            get { return fOid; }
            set { SetPropertyValue<Guid>(nameof(Oid), ref fOid, value); }
        }

    }

错误详情:

启动应用程序时发生错误。CannotResolveClassInfoException:无法解析类型“[Main.Alpha.Module, Version=1.0.7962.21845, Culture=neutral, PublicKeyToken=null]Main.Alpha.Module.Models.Base.Interfaces.IBaseIdentificationCode”的 ClassInfo。

DevExpress.Xpo.Metadata.XPDictionary.GetClassInfo(Type classType) TargetInvocationException:调用的目标已引发异常。

System.RuntimeMethodHandle.InvokeMethod(object target, object[] arguments, Signature sig, bool constructor, bool wrapExceptions)

CannotResolveClassInfoException: Cannot resolve ClassInfo for type '[Main.Alpha.Module, Version=1.0.7962.21845, Culture=neutral,

PublicKeyToken=null]Main.Alpha.Module.Models.Base.Interfaces.IBaseIdentificationCode'。DevExpress.Xpo.Metadata.XPDictionary.GetClassInfo(Type classType) DevExpress.Xpo.Metadata.XPMemberInfo.get_CollectionElementType() DevExpress.Xpo.Metadata.XPMemberInfo.GetAssociatedMember() DevExpress.ExpressApp.DC.Xpo.XpoTypeInfoSource.InitXPClassMemberInfo(object memberSource, XafMemberInfo 成员)DevExpress.ExpressApp.DC.Xpo.XpoTypeInfoSource.InitMemberInfo(ITypeInfo 所有者,XafMemberInfo 成员,对象 memberSource)DevExpress.ExpressApp.DC.Xpo.XpoTypeInfoSource.InitMemberInfo(对象 memberSource,XafMemberInfo 成员)DevExpress.ExpressApp.DC.TypeInfo。 InitializeMember(对象成员,字符串成员名称)DevExpress.ExpressApp.DC.Xpo.XpoTypeInfoSource.EnumXPClassMembers(TypeInfo 信息,EnumMembersHandler 处理程序)DevExpress.ExpressApp.DC.Xpo。

TargetInvocationException:调用的目标已引发异常。

System.RuntimeMethodHandle.InvokeMethod(object target, object[] arguments, Signature sig, bool constructor, bool wrapExceptions)
System.Reflection.RuntimeMethodInfo.Invoke(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters,

CultureInfoculture) System.Reflection.MethodBase.Invoke(object obj, object[] parameters) DevExpress.DashboardAspNetCore.EndpointRouteBuilderExtension.MapControllerRoute(object endpointRouteBuilder, string name, string pattern, object defaults, object constraint) System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid6< T0, T1, T2, T3, T4, T5>(CallSite 站点, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5) DevExpress.DashboardAspNetCore.EndpointRouteBuilderExtension.MapDashboardRoute(object endpointRouteBuilder, string routePrefix, string controllerName , 字符串 areaName) System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid5<T0, T1, T2, T3, T4>(CallSite 站点, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4) DevExpress.DashboardAspNetCore.EndpointRouteBuilderExtension.MapDashboardRoute(object endpointRouteBuilder,字符串 routePrefix,字符串 controllerName) DevExpress.ExpressApp.Dashboards.Blazor.StartupExtensions.MapXafDashboards(IEndpointRouteBuilder endpoints, string dashboardEndpoint, string dashboardControllerName) Main.Alpha.Blazor.Server.Startup+<>c.b__5_1(IEndpointRouteBuilder endpoints) 在 Startup.cs

            app.UseAuthentication();
            app.UseAuthorization();
            app.UseXaf();
            app.UseDevExpressBlazorReporting();
            app.UseXafDashboards();
            app.UseEndpoints(endpoints => {

                endpoints.MapXafDashboards();

                endpoints.MapBlazorHub();
                endpoints.MapFallbackToPage("/_Host");
                endpoints.MapControllers();
            });
        }
    }

Startup.cs 中的 Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions.UseEndpoints(IApplicationBuilder builder, Action configure) Main.Alpha.Blazor.Server.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env)

            app.UseRouting();
            app.UseAuthentication();
            app.UseAuthorization();
            app.UseXaf();
            app.UseDevExpressBlazorReporting();
            app.UseXafDashboards();

            app.UseEndpoints(endpoints => {

                endpoints.MapXafDashboards();
                endpoints.MapBlazorHub();
                endpoints.MapFallbackToPage("/_Host");
                endpoints.MapControllers();
            });
        }

System.RuntimeMethodHandle.InvokeMethod(object target, object[] arguments, Signature sig, bool constructor, bool wrapExceptions) System.Reflection.RuntimeMethodInfo.Invoke(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfoculture) Microsoft。 AspNetCore.Hosting.ConfigureBuilder.Invoke(对象实例,IApplicationBuilder 构建器)Microsoft.AspNetCore.Hosting.ConfigureBuilder+<>c__DisplayClass4_0.b__0(IApplicationBuilder 构建器)Microsoft.AspNetCore.Hosting.GenericWebHostBuilder+<>c__DisplayClass15_0.b__1(IApplicationBuilder 应用程序)DevExpress.Web。 Internal.ConfigurationSettings+<>c__DisplayClass0_0.b__0(IApplicationBuilder 构建器)Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter+<>c__DisplayClass0_0.g__MiddlewareFilterBuilder|0(IApplicationBuilder 构建器)Microsoft。AspNetCore.Server.IIS.Core.IISServerSetupFilter+<>c__DisplayClass2_0.b__0(IApplicationBuilder 应用) Microsoft.AspNetCore.HostFilteringStartupFilter+<>c__DisplayClass0_0.b__0(IApplicationBuilder 应用) Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancelToken) Microsoft.Extensions.Hosting .Internal.Host.StartAsync(CancellationToken cancelToken) Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions。在 Program.cs 中运行(IHost 主机) Main.Alpha.Blazor.Server.Program.Main(string[] args)b__0(IApplicationBuilder 应用) Microsoft.AspNetCore.HostFilteringStartupFilter+<>c__DisplayClass0_0.b__0(IApplicationBuilder 应用) Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancelToken) Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancelToken) Microsoft.Extensions .Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost 主机,CancellationToken 令牌)Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost 主机,CancellationToken 令牌)Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost 主机)Main.Alpha.Blazor.Server。 Program.cs 中的 Program.Main(string[] args)b__0(IApplicationBuilder 应用) Microsoft.AspNetCore.HostFilteringStartupFilter+<>c__DisplayClass0_0.b__0(IApplicationBuilder 应用) Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancelToken) Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancelToken) Microsoft.Extensions .Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost 主机,CancellationToken 令牌)Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost 主机,CancellationToken 令牌)Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost 主机)Main.Alpha.Blazor.Server。 Program.cs 中的 Program.Main(string[] args)StartAsync(CancellationToken cancelToken) Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancelToken) Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken令牌) Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost 主机) Main.Alpha.Blazor.Server.Program.Main(string[] args) 在 Program.csStartAsync(CancellationToken cancelToken) Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancelToken) Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken令牌) Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost 主机) Main.Alpha.Blazor.Server.Program.Main(string[] args) 在 Program.csProgram.cs 中的 Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host) Main.Alpha.Blazor.Server.Program.Main(string[] args)Program.cs 中的 Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host) Main.Alpha.Blazor.Server.Program.Main(string[] args)

4

0 回答 0