成员名称不能与其在xaml.g.cs中的封闭类型相同

时间:2019-02-19 09:32:18

标签: c# xaml xamarin xamarin.forms

我将xamarin.forms nuget软件包从3.0.53更新到了3.5.0(是的,我跳过了很多版本)。但是现在我的某些xaml.g.cs文件中出现以下错误

public DbSet<ApplicationUser> ApplicationUser { get; set; }
public DbSet<ApplicationRole> ApplicationRole { get; set; }

protected override void OnModelCreating(ModelBuilder builder)
    {
        builder.Entity<ApplicationUser>()
                .HasMany(u => u.ApplicationRoles)
                .WithOne(r => r.ApplicationUser);
    }

我知道您可以通过更改生成xaml.g.cs的xaml文件中的x:Name字段来更改变量的名称,如以下链接所示。 https://forums.xamarin.com/discussion/129503/after-upgrading-xamarin-forms-from-version-3-0-0-561731-to-3-1-0-583944-i-get-a-compile-error

这对我来说不起作用,因为xaml.g.cs中的FindByName方法将不起作用,因为该名称与它试图查找的类的名称不匹配。这真的很烂,因为它不能同时使用两种方式。

我的xaml.g.cs文件的一部分:

CS0542: 'LocationsView': member names cannot be the sam as their enclosing type

我的xaml文件的一部分:

[global::Xamarin.Forms.Xaml.XamlFilePathAttribute("Views\\Location\\LocationsView.xaml")]
public partial class LocationsView : global::Views.UserControls.RootPage {

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "0.0.0.0")]
    private global::Views.UserControls.RootPage LocationsView;

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Forms.Build.Tasks.XamlG", "0.0.0.0")]
    private void InitializeComponent() {
        global::Xamarin.Forms.Xaml.Extensions.LoadFromXaml(this, typeof(LocationsView));
        LocationsView = global::Xamarin.Forms.NameScopeExtensions.FindByName<global::Views.UserControls.RootPage>(this, "LocationsView");
    }
}

有没有一种方法可以解决CS50542错误,以便FindByName方法仍然可以为我提供有效的输出?

0 个答案:

没有答案