繁体   English   中英

有条件的Editor可通过web.config AppSettings浏览

[英]conditional EditorBrowsable by web.config AppSettings

我有一个项目A ,将在项目B中用作参考。

项目A的类具有根据项目B中指定的条件应该可见还是不可见的方法。 假设在项目B的web.config appSettings中,如果键“ DisplayMethod”的值为“ true”,则该方法将可见。

这更多的是版本控制。 我不想为Project A的新版本创建单独的dll。我希望单个dll能够同时支持新旧版本。 这样,Project B的开发人员可以轻松地在web.config中切换版本,重建项目,他很高兴。

限制条件

  • 我没有对Project B的控制权。我只能要求Project B的开发人员进行简单的修改,例如web.config修改。
  • 我不知道将使用Project A进行哪些项目。Project A是一个开源项目,任何人都可以使用,可能在成千上万个项目中使用。

“方法可见”是指与以下代码相同的功能:

[EditorBrowsable(EditorBrowsableState.Never)]
public string SomeMethod(string s)
{
    return "Hello " + s;
}

到目前为止的研究:

我已经看到了这个问题 但是,它的公认答案对我不起作用,因为条件常数只能在该方法所在的同一项目的项目属性中设置。

条件命名空间也可以,但是在那里我遇到了同样的问题。

属性值必须在编译时由编译器知道。 因此,要达到的目标是不可能的。 我不是专家,但是Mono Cecil可以做到这一点。 虽然我不确定它是否值得。

如果将“对...可见”表示“仅对...可见”,那么您就可以利用朋友程序集了 它允许另一个程序集访问标记为内部的方法/属性/字段等。

为了使它起作用,您需要在编译时声明B是A的朋友。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM