将ParseUser对象注入Controller

时间:2013-12-29 20:05:16

标签: asp.net-mvc dependency-injection castle-windsor parse-platform

我正在尝试在mvc Web应用程序中使用parse的.net客户端。 并且找不到合适的方法来注入 ParseObject ParseUser ParseUser.CurrentUser

注入静态对象的好方法是什么?

网络应用程序具有表单身份验证设置。 和ioc容器注册组件或服务LifestylePerWebRequest()

当我想更新用户对象时出现问题, 只有登录的ParseUser.CurrentUser我们才能更新。 (https://parse.com/docs/dotnet_guide#users-security

但这是一个静态对象,我得到了最新登录的用户......

现在我正在考虑在解析中创建一个user2表,并将所有配置文件数据保存在那里......

还有更好的方法吗?

    public async Task<bool> UpdateUser(string id, string name, string surname)
    {
        //var user = ParseUser.CurrentUser;

        var user = await ParseUser.Query.GetAsync(id);
        if (user == null) return await Task.FromResult(false);

        user.Name = name;
        user.Surname = surname;
        await user.SaveAsync();

        return await Task.FromResult(true);
    }

1 个答案:

答案 0 :(得分:2)

  

注入静态对象的好方法是什么?

将它们隐藏在应用程序定义的抽象之后。您定义a narrow interface来描述应用程序所需的功能(理想情况下,没有接口泄漏外部框架)。例如:

public interface IUserRepository
{
    // Throws an exception on failure.
    void UpdateUser(string id, string name, string surname);
}

现在,您可以隐藏IUserRepository的实现背后的静态类:

public class ParseUserRepository : IUserRepository
{
    public void UpdateUser(string id, string name, string surname)
    {
        // call the static Parse functionality.
    }
}