我懷疑你沒有向我們展示完整的代碼,因爲你已經提供了應該工作。
您必須擁有一個公共方法或返回您的內部類E.G.的實例的屬性。
namespace MyProject
{
public class PublicClass
{
public UtilClass DoSomething() {}
public UtilClass { get; }
// External assemblies cannot see the UtilClass type which is
// why this does not work.
}
}
這顯然不能完成,因爲外部程序集需要知道它。
如果您確實需要擁有一個暴露行爲而不暴露內部類型的公共屬性,請考慮擁有一個您的工具類可以實現的接口。
這將允許您保持輔助類的內部,但仍然暴露它(通過接口)到外部程序集。
internal class UtilClass : IMyPublicInterface
{
}
namespace MyProject
{
public class PublicClass
{
public IMyPublicInterface DoSomething() {}
public IMyPublicInterface { get; }
// External assemblies now only need to know about the public interface.
}
}
聽起來像你在'PublicClass'中有'UtilClass'類型的'protected'或'public'成員。降低該成員對「內部」的可見度。 – CodesInChaos
你的代碼應該是,應該編譯。 – CodesInChaos
此代碼沒有證明問題,請發表其餘的代碼。然而,CodesInChaos的建議很可能是原因。 –