.net - 将内部类公开为公共(public)属性

标签 .net encapsulation public class-library internal

在我正在处理的类库中,我有一个具有很多属性的类,因此我将其重构为由一些较小的内部类组成。但是,现在我已将这些类标记为内部,当我将它们公开为原始类的公共(public)属性时,代码将无法编译。例如:

public class TheOriginalClass
{
    public MyInternalClass InternalClassProperty { get; set; }
}

// It doesn't make sense to use this by itself
internal class MyInternalClass
{
    public string InterestingProperty { get; set; }
}

理想情况下,我想将这些helper 类封装在程序集中,因为在其他地方实例化它们没有意义。

有什么办法可以实现吗?

最佳答案

internal 类作为 public 属性的静态类型是没有意义的。另一个程序集中该属性的使用者将无法使用它做任何有用的事情。

也许您想要一个带有内部 构造函数的public 帮助程序类,以防止其他人创建它。

或者将属性的类型设为公共(public)接口(interface),并在内部类中实现该接口(interface)。

关于.net - 将内部类公开为公共(public)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6200053/

相关文章:

.net - Lucene.NET - 索引单个大于 1GB 的大文件

c# - 如何使用 Moq 在 C# 中模拟 Azure 存储帐户?

oop - 抽象和封装之间的区别?

php - 调用时间传递引用已被删除

java - 为公共(public) API 公开集合或集

.net - 哪些日志查看器工具可以读取 System.Diagnostics.EventSchemaTraceListener 创建的 XML?

java - 验证系统

java - 创建后不应更改属性

java - 混淆Java封装概念

c++ - C++中的 friend 声明-公共(public)和私有(private)之间的区别