我有两个不同的库,它们引用了名为base.dll的基本库。一个用于Web平台的库另一个用于Windows平台(WPF)的库。我必须限制在WPF平台中限制一个公共属性,但我想在Web平台中访问它。怎么能实现这个?我正在尝试条件编译,但我不知道该怎么做。请帮帮我
对于Ex: - 基础库:
public Class CommonClass{
public string CssClass
{
get;
set;
}
}
Referenced Library 1(Web) - 引用基础库,需要访问此库中的CssClass
引用库2:(WPF) - 引用基库,需要在此库中限制CssClass
答案 0 :(得分:1)
这实际上听起来像是一个设计缺陷。您创建一个库并定义该库的用户应该可以访问哪些属性。通常,您不会隐藏特定客户的特定属性。
但是,我认为您可以通过制作属性internal
并使用base.dll
中的InternalsVisibleToAttribute
来实现您想要的效果:
[assembly: InternalsVisibleTo("webplatformassembly")]
public Class CommonClass{
internal string CssClass
{
get;
set;
}
}
这样,除了InternalsVisibleTo
属性中提到的属性外,没有客户端可以看到该属性。