2017-06-01 18 views
0

base.dllと呼ばれるベースライブラリを参照する2つの異なるライブラリがあります。 1つのライブラリは、Webプラットフォーム用に別のものを使用して、Windowsプラットフォーム(WPF)用に使用します。 WPFプラットフォームでは1つのパブリックプロパティを制限する必要がありますが、Webプラットフォームでアクセスしたいのです。どのようにこれを達成することができる?条件コンパイルを試みていますが、正確に行う方法はわかりません。例のために私に公開されているライブラリのパブリックアクセス修飾子はどのようにして制限できますか?

を助けてください: - 基本ライブラリ:

public Class CommonClass{ 
    public string CssClass 
       { 
      get; 
      set; 
       } 
} 

参照先ライブラリ1(ウェブ) - 参照されるベースライブラリー、このライブラリでのCssClassにアクセスする必要が

参考図書2:( WPF) - ベースライブラリを参照し、このライブラリのCssClassを制限する必要があります。

答えて

1

これは実際には設計上の欠陥のようです。ライブラリを作成し、そのライブラリのユーザがアクセスできるプロパティを定義します。通常、特定のクライアントから特定のプロパティを隠すことはありません。

しかし、私はあなたがプロパティinternalを作ることによって、あなたが望むものを達成し、あなたのbase.dllInternalsVisibleToAttributeを使用することができると思う:

[assembly: InternalsVisibleTo("webplatformassembly")] 

public Class CommonClass{ 
    internal string CssClass 
    { 
     get; 
     set; 
    } 
} 

どのクライアントがInternalsVisibleTo属性に言及されたものを除いて、そのプロパティを見ることはできません。この方法。

も参照してください。Friend Assemblies (C# and Visual Basic)

関連する問題