我有一个奇怪而令人沮丧的问题。我有一个事件是这样做的:
private async void EsriMap_GeoViewTapped(object sender, GeoViewInputEventArgs e)
{
if(e.Location == null)
{
// The code always goes into this if statement
// it is acting like a null
bool b = true;
}
}
我的xaml代码看起来像这样:
<esri:MapView x:Name="SiteMapView"
Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="5"
Map="{ Binding Map }"
GeoViewTapped="EsriMap_GeoViewTapped"
GraphicsOverlays="{Binding GraphicsOverlays}" />
但是,如果我查看手表并键入“e”然后钻入其中然后钻入位置,我会看到我期待的属性。
如果我在手表中输入'e.Location',则表的输出为空(不说空)。另外,当我这样做时,我注意到在输出窗口中我得到了重复的异常文本,重复了10次:
System.ArgumentException:字段'k__BackingField'对此类型无效。在E:\ A_work \ 785 \ s \ external \ NRefactory \ ICSharpCode.NRefactory.CSharp \ Ast \ Expressions \ MemberReferenceExpression.cs中的Mono.Debugger.Soft.ObjectMirror.GetValues(IList
1 fields) in E:\A\_work\785\s\external\debugger-libs\Mono.Debugger.Soft\Mono.Debugger.Soft\ObjectMirror.cs:line 93 at Mono.Debugger.Soft.ObjectMirror.GetValue(FieldInfoMirror field) in E:\A\_work\785\s\external\debugger-libs\Mono.Debugger.Soft\Mono.Debugger.Soft\ObjectMirror.cs:line 74 at Mono.Debugging.Soft.FieldValueReference.get_Value() in E:\A\_work\785\s\external\debugger-libs\Mono.Debugging.Soft\FieldValueReference.cs:line 129 at Mono.Debugging.Evaluation.ValueReference.GetChild(String name, EvaluationOptions options) in E:\A\_work\785\s\external\debugger-libs\Mono.Debugging\Mono.Debugging.Evaluation\ValueReference.cs:line 274 at Mono.Debugging.Evaluation.NRefactoryExpressionEvaluatorVisitor.VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression) in E:\A\_work\785\s\external\debugger-libs\Mono.Debugging\Mono.Debugging.Evaluation\NRefactoryExpressionEvaluatorVisitor.cs:line 1042 at ICSharpCode.NRefactory.CSharp.MemberReferenceExpression.AcceptVisitor[T](IAstVisitor
1 visitor):Mono.Debugging.Evaluation第105行.NRefactoryExpressionEvaluator.Evaluate(EvaluationContext ctx,String expression,Object expectedType)在E:\ A_work \ 785 \ s \ external \ debugger-libs \ Mono.Debugging \ Mono.Debugging.Evaluation \ NRefactoryExpressionEvaluator.cs:第82行Mono.Debugging E:\ A_work \ 785 \ s \ external \ debugger-libs \ Mono.Debugging \ Mono.Debugging.Evaluation \ ObjectValueAdaptor.cs:line 1411中的.Evaluation.ObjectValueAdaptor.GetExpressionValue(EvaluationContext ctx,String exp)
我也在另一个项目中使用了类似的代码,我没有发生这种奇怪的事情。有关正在发生的事情以及如何解决问题的任何想法?
在与另一位开发人员讨论此问题大约两天后,我发现我使用的ESRI库在两个不同的命名空间中具有类GeoViewInputEventArgs。这些类必须相同或非常接近相同。因此,切换到正确的命名空间后,它现在可以按预期工作。我真的不知道为什么有人会在他们的库中使用相同的类名。