1

SignalR Chat 示例中,调用者属性是使用代码设置的;

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() 抛出“从类型 'Task(Of Object)' 类型转换为类型 'String' 无效”的错误。

完全相同的代码,但在 c# 中工作正常;

public void SetCaller(){
    Caller.name = "tim";
}

public void GetCaller(){
    string name = Caller.name;
}

我的代码在 vb.net 中有错误吗?

4

1 回答 1

0

不,您在 VB.NET 的语法上没有做错任何事情。我唯一能想到的就是使用 IDE 检查 Caller 是什么类型以及 Caller.name。在 VB.NET 中,它不区分大小写,并且许多命名空间可能会自动导入,而无需您在文件顶部特别列出它们,因此在 VB 中,它很可能使用与您预期不同的类型。

于 2012-06-14T12:24:47.007 回答