首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回对象类型,而不是字符串类型

返回对象类型,而不是字符串类型
EN

Stack Overflow用户
提问于 2015-10-08 23:34:12
回答 1查看 101关注 0票数 0
代码语言:javascript
复制
public interface IApiUserProvider
{
    Dictionary<Guid, string> UserNamesByToken { get; }
    string this[Guid token] { get; }


}

public class ApiUserProvider : IApiUserProvider
{
    private readonly ICacheProvider _cacheProvider;
    private readonly IEntitySet<ApiUser> _apiUsers;

    private string CacheKey
    {
        get
        {
            return string.Format("{0}-{1}", GetType().Name, "ApiUsersByToken");
        }
    }

    public ApiUserProvider(ICacheProvider cacheProvider, IEntitySet<ApiUser> apiUsers)
    {
        _cacheProvider = cacheProvider;
        _apiUsers = apiUsers;
    }

    public Dictionary<Guid, string> UserNamesByToken
    {
        get
        {
            return _cacheProvider.Get(CacheKey, () => _apiUsers.Where(u => u.IsActive).ToDictionary(u => u.Token, u => u.Name));
        }
    }

    public string this[Guid token]
    {
        get { return UserNamesByToken.GetValueOrDefault(token); }
    }
}

当我用ApiUser this[Guid token] { get; }替换string this[Guid token] { get; }时,我在这段代码中得到错误,如下所示

代码语言:javascript
复制
return string : cannot convert to object


return _cacheProvider.Get(CacheKey, () => _apiUsers.Where(u => u.IsActive).ToDictionary(u => u.Token, u => u.Name));

请告诉我如何将其转换为object类型

EN

回答 1

Stack Overflow用户

发布于 2015-10-08 23:55:14

首先,您必须更新字段UserNamesByToken

代码语言:javascript
复制
public Dictionary<Guid, ApiUser> UserNamesByToken
    {
        get
        {
            return _cacheProvider.Get(CacheKey, () => _apiUsers.Where(u => u.IsActive).ToDictionary(u => u.Token, u => u));
        }
    }

别忘了更新ToDictionary(u => u.Token, u => u)

然后更新您的IApiUserProvider接口

代码语言:javascript
复制
public interface IApiUserProvider
{
    Dictionary<Guid, string> UserNamesByToken { get; }
    ApiUser this[Guid token] { get; }
}

在更新索引器之后

代码语言:javascript
复制
public string this[Guid token]
{
    get { return UserNamesByToken.GetValueOrDefault(token); }
}

如果这不起作用,请让我知道:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33020136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档