[英]C# Accessing dynamic property on interface
我正在玩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.
}
}
我错过了什么? 谢谢。
在版本2.0之前,不会引入ISecurityContext
上的Data
属性。 与nuget一起安装的默认值不包括预发布版本是1.4 。 哪个没有财产 。 确保使用正确的版本!
以下按预期运行,有什么我做的不同于你吗?
void Main()
{
ATest t = new ATest();
Experiment z = new Experiment();
z.TestTest(t);
}
public class ATest : ITest
{
public dynamic Data {get; set;}
public ATest()
{
Data = new { Test = "This is a string" };
}
}
// Define other methods and classes here
public interface ITest
{
dynamic Data { get; }
}
public class Experiment
{
public int TestTest(ITest context)
{
dynamic data = context.Data;
Console.WriteLine(data.Test);
return 0;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.