【发布时间】:2011-06-09 12:53:22
【问题描述】:
在解决方案A(命名空间名称)中,我通过接口(IClassA)从另一个类(Engine)和这个类调用内部类(ClassA)的成员(functionA())。
IClassA 声明了这个函数 Engine 调用此函数并使用另一个方法(在本例中为相同的方法名称)。
所以如果我想在另一个解决方案中调用这个内部成员。
所以在解决方案 B 中
我能做到:
using SolutionA;
IClassA iA;
iA = new Engine();
iA.fuctionA();
我想当我在 iA 之后执行 [.] 时它应该给出 functionA ,但是智能感知没有给出 ..这里有什么问题?
为什么我没有在解决方案B 中获得函数A?
关于我的架构的更多信息:
//IClassA.cs
namespace namespaceA
{
internal class ClassA
{
public string FunctionA(){}
}
}
//Engine.cs
namespace namespaceA
{
public class Engine() : IClassA()
{
public IClassA.FunctionA(){}
}
}
// IClassA.cs
namespace namespaceA
{
public interface IClassA()
{
string FunctionA(string data);
}
}
//ClassB.cs
namespace namespaceB
{
using namespaceA;
internal class Classb
{
IClassA engine = new namespaceA.Engine();
engine.FunctionA(); //here i am unable to get fuuction
}
}
【问题讨论】:
-
如果有两种方案,需要使用[InternalsVisibleTo]吗?(msdn.microsoft.com/en-us/library/0tke9fxk.aspx)
标签: c# .net class interface accessibility