【发布时间】:2012-08-15 02:40:32
【问题描述】:
我正在玩用于 asp.net mvc 的 FluentSecurity 库。该库公开的接口之一是ISecurityContext,如下所示:
public interface ISecurityContext
{
dynamic Data { get; }
bool CurrenUserAuthenticated();
IEnumerable<object> CurrenUserRoles();
}
当我尝试访问“数据”属性(如下所示)时,它不可用。尽管其他两种方法似乎可以访问。
public class ExperimentalPolicy : ISecurityPolicy
{
public PolicyResult Enforce(ISecurityContext context)
{
dynamic data = context.Data; // Data property is not accessible.
}
}
我错过了什么?谢谢。
【问题讨论】:
-
实际异常是什么,我认为这个问题与 ISecurityContext 的实际实现有关,因为 Data 返回的是什么而不是调用数据本身,因为返回类型是否是动态的, 数据本身是一个静态属性。
-
@jbtule 查看我对霍根回答的评论
-
您的评论中没有例外。但它确实提到了当你使用源而不是 dll 时工作。这是编译器错误吗?您是否没有使用 nuget 的 1.4 dll,因为在 2.0 之前,ISecurityContext github.com/kristofferahl/FluentSecurity/blob/… 上没有 Data 属性
-
@jbtule 谢谢。我使用的是 1.4 参考,而我下载的源代码是 2.0。我觉得很傻 :) 无论如何..如果您可以将您的评论作为答案,我可以将其标记为一个。
标签: c# c#-4.0 dynamic fluent-security