Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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# 在vb.net中设置和获取信号调用程序属性_C#_Asp.net_Vb.net_Signalr - Fatal编程技术网

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)的人可能比熟悉信号器库的人多得多。