C# 在vb.net中设置和获取信号调用程序属性
在中,使用代码设置调用方属性C# 在vb.net中设置和获取信号调用程序属性,c#,asp.net,vb.net,signalr,C#,Asp.net,Vb.net,Signalr,在中,使用代码设置调用方属性 Caller.name = newUser.Name; 随后,读取该属性 string name = Caller.name; 我有自己的SignalR项目,但这个是vb.net,当我对调用者属性进行相同的设置和获取时,它就不起作用了 Public Sub SetCaller() Caller.name = "tim" End Sub Public Sub GetCaller() Dim name as string = Caller.name
Caller.name = newUser.Name;
随后,读取该属性
string name = Caller.name;
我有自己的SignalR项目,但这个是vb.net,当我对调用者属性进行相同的设置和获取时,它就不起作用了
Public Sub SetCaller()
Caller.name = "tim"
End Sub
Public Sub GetCaller()
Dim name as string = Caller.name
End Sub
GetCaller()引发“从类型“任务(对象)”转换为类型“字符串”的错误无效。”
完全相同的代码,但在c#中工作良好
public void SetCaller(){
Caller.name = "tim";
}
public void GetCaller(){
string name = Caller.name;
}
我的代码在vb.net中有错吗?没有,你在vb.net中没有做任何语法上的错误。我能想到的唯一一件事就是使用IDE检查Caller的类型和Caller.name。在VB.NET中,它不区分大小写,许多名称空间可能会自动导入,而无需在文件顶部特别列出它们,因此在VB中,它使用的类型与您期望的不同。调用程序是vb.net和c#中的signar.Hubs.StatefulSignalAgent,name属性的类型是什么?我无法访问它,因为它是一个动态对象?这很有趣。因此,当您在C#中将name属性设置为字符串时,将使用字符串类型创建动态属性,但在VB.NET中执行相同操作时,将使用(对象)类型创建动态属性?我对动态的东西不太熟悉,所以很遗憾,我无法进一步帮助您。我建议尝试将问题减少到尽可能少的代码量。以与StatefulSignalAgent相同的方式创建自己的具有动态属性的类。然后用更一般的方式回答你的问题,为什么这个动态对象不能正常工作。我怀疑如果你这样做,并且你展示了重现问题所需的所有代码,你就会得到答案。这里了解动态对象(不包括me)的人可能比熟悉信号器库的人多得多。