将视图模型设计为内部类

时间:2015-09-21 12:27:24

标签: c# wpf

我正在开发Windows Runtime Component项目,该项目必须向外界公开几个​​控件。我想使用Design View Models,所以我有类似的东西:

public sealed class FirstPanelDesignViewModel
{ ... }

它在设计时可以正常工作,但是这个类也暴露在其项目的外部世界中,这是不可取的。所以我可以像这样修改它:

internal class FirstPanelDesignViewModel
{ ... }

但是现在Designer(打开的.xaml文件)抱怨它无法访问该类并且渲染不再发生:

The name "FirstPanelDesignViewModel" does not exist in the namespace "using:SomeProject.DesignViewModels".

有没有办法在Windows运行时组件中使用设计视图模型而不将其暴露在外?

1 个答案:

答案 0 :(得分:0)

我猜你可以使用Friend Assemlies

using System.Runtime.CompilerServices;
using System;

[assembly: InternalsVisibleTo("AssemblyB")]

// The class is internal by default.
class FriendClass
{
    public void Test()
    {
        Console.WriteLine("Sample Class");
    }
}

// Public class that has an internal method.
public class ClassWithFriendMethod
{
    internal void Test()
    {
        Console.WriteLine("Sample Method");
    }

}