[英]conditional EditorBrowsable by web.config AppSettings
我有一个项目A ,将在项目B中用作参考。
项目A的类具有根据项目B中指定的条件应该可见还是不可见的方法。 假设在项目B的web.config appSettings中,如果键“ DisplayMethod”的值为“ true”,则该方法将可见。
这更多的是版本控制。 我不想为Project A的新版本创建单独的dll。我希望单个dll能够同时支持新旧版本。 这样,Project B的开发人员可以轻松地在web.config中切换版本,重建项目,他很高兴。
限制条件
“方法可见”是指与以下代码相同的功能:
[EditorBrowsable(EditorBrowsableState.Never)]
public string SomeMethod(string s)
{
return "Hello " + s;
}
到目前为止的研究:
我已经看到了这个问题 。 但是,它的公认答案对我不起作用,因为条件常数只能在该方法所在的同一项目的项目属性中设置。
条件命名空间也可以,但是在那里我遇到了同样的问题。
属性值必须在编译时由编译器知道。 因此,要达到的目标是不可能的。 我不是专家,但是Mono Cecil可以做到这一点。 虽然我不确定它是否值得。
如果将“对...可见”表示“仅对...可见”,那么您就可以利用朋友程序集了 。 它允许另一个程序集访问标记为内部的方法/属性/字段等。
为了使它起作用,您需要在编译时声明B是A的朋友。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.