我只是想通知您,如果您在XF 3.1版本上升级,您可能会收到xaml错误,提示“成员名称不能与它们的封闭类型相同”。 如果父类型和子类型具有相同的名称,则这是一个众所周知的C#错误
原因是下面的代码在XF 3.1之前的版本中可用,但是在XF 3.1上返回错误...我不确定是否一直都是错误或错误修复?
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="myApp.TestPage" x:Name="TestPage" >
<ContentPage.Content>
<c:cwTest x:Name="cwTest" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"/>
</ContentPage.Content>
</ContentPage>
唯一更改的是,我们现在为顶级XAML元素定义的x:Name
创建了一个字段,因此最终可以从后面的代码中访问它,而以前则不是。
您可以通过在Xaml中具有Label
或xaml中具有x:Name =“ TestPage”'属性的任何元素来重现该行为。
如果它破坏了您的某些代码,我们深感抱歉。 经过仔细考虑,这不被视为错误或回归。 您的代码曾经依赖于缺少的验证,但是您再也无法利用此失败了。
解决方法是微不足道的,直接的,并且安装起来非常简单。
@StephaneDelcroix我同意这一点。 我只是引起您的注意,因为您应该突出显示它。 VS2017没有给我足够的信息,相反,它为单个文件引发了100多个错误。 一旦我恢复到3.0,一切正常。 仅供有此错误的其他人参考此问题。
@EmilAlipiev @StephaneDelcroix是的,事先警告会有所帮助。 这是一个重大变化,您的道歉/辩解无济于事。
最有用的评论
@EmilAlipiev @StephaneDelcroix是的,事先警告会有所帮助。 这是一个重大变化,您的道歉/辩解无济于事。