Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无效的强制转换异常-强制转换无效_C# - Fatal编程技术网

C# 无效的强制转换异常-强制转换无效

C# 无效的强制转换异常-强制转换无效,c#,C#,这是我网站上的错误。VisualStudio中没有错误,它编译得很好。当我在本地运行网站并单击按钮以在Chrome或任何其他浏览器中显示区域时,就会发生这种情况。我完全被这件事难住了,我正在寻求任何帮助??非常感谢 System.InvalidCastException: Specified cast is not valid. at MySite.Web.Areas.Mpa.Controllers.ZonesController.d__7.MoveNext() in C:\MySite\Dev

这是我网站上的错误。VisualStudio中没有错误,它编译得很好。当我在本地运行网站并单击按钮以在Chrome或任何其他浏览器中显示区域时,就会发生这种情况。我完全被这件事难住了,我正在寻求任何帮助??非常感谢

System.InvalidCastException: Specified cast is not valid.
at MySite.Web.Areas.Mpa.Controllers.ZonesController.d__7.MoveNext() in C:\MySite\Development\routing_branch\src\MySite.Web\Areas\Mpa\Controllers\ZonesController.cs:line 125
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass37.b__36(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3d()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f()

您不能将
对象
直接强制转换为
long
。您应该使用甚至可以强制转换对象值的
Convert.ToInt64()

string tenantCoordinates = await tenantSettingsAppService.GetTenantCoordinates(Convert.ToInt64(obj));
附言:为什么不将“obj”声明为
long
(并相应地更改名称:):


EDIT更新@Jonno

提到的错误库调用,只要
obj
是对
int
的引用,您可以在转换为
long
之前尝试显式转换为
int
。GetTenantCoordinates((long)(int)obj)


不过,我认为您可以将
obj
声明为
int
long

没有
Convert.ToLong()
-您的意思可能是
Convert.ToInt64()
-非常感谢!完全是这样。我有一些依赖于名称的其他代码,因此(Convert.ToInt64(obj));这就是答案!再次感谢!
dbo.MySiteZones
Columns:
Id (PK, bigint, not null)
TenantId (int, not null)
Name (nvarchar(255), not null)
Caption (nvarchar(600), null)
IsActive (bit, not null)
IsDeleted (bit, not null)
DeleterUserId (bigint, null)
DeletionTime (datetime, null)
LastModificationTime (datetime, null)
LastModifierUserId (bigint, null)
CreationTime (datetime, not null)
CreatorUserId (bigint, null)
PolygonCoordinates (nvarchar(max), null)
HexColor (nvarchar(12), null)
PolygonCoordinatesReversed (nvarchar(max), null)
string tenantCoordinates = await tenantSettingsAppService.GetTenantCoordinates(Convert.ToInt64(obj));
long obj;
// ... 
string tenantCoordinates = await tenantSettingsAppService.GetTenantCoordinates(obj);