Windows phone 7 Windows Phone 7.1项目参考
我有多个项目的解决方案:Windows phone 7 Windows Phone 7.1项目参考,windows-phone-7,windows-phone,dependencies,project,solution,Windows Phone 7,Windows Phone,Dependencies,Project,Solution,我有多个项目的解决方案: 项目A 项目b 项目C 项目之间的关系应为: 项目A>参考资料>项目B 项目B>参考资料>项目C 项目C>无参考文献 目前,在尝试实现上述关系时,我收到一个异常(目前无法提供确切的异常),ProjectA中缺少ProjectC程序集 我知道这在Android中是可能的,但在WP平台上可能吗? 编辑: 我知道向ProjectA添加ProjectC的引用将解决此异常,但这不是我的目标。您描述的设置是可能的,但前提是ProjectA在其源代码中未引用ProjectC中的任何类
项目A
项目b
项目C
项目之间的关系应为:
项目A>参考资料>项目B
项目B>参考资料>项目C
项目C>无参考文献
目前,在尝试实现上述关系时,我收到一个异常(目前无法提供确切的异常),ProjectA中缺少ProjectC程序集 我知道这在Android中是可能的,但在WP平台上可能吗?
编辑:
我知道向ProjectA添加ProjectC的引用将解决此异常,但这不是我的目标。您描述的设置是可能的,但前提是ProjectA在其源代码中未引用ProjectC中的任何类型。如果ProjectA引用了ProjectC中的任何类型(甚至是间接引用),则必须添加引用。没有办法解决这个问题,因为编译器要构建ProjectA,必须能够解析其源代码中的所有类型 例如,假设我们有以下项目: 项目C:
public class C
{
public void CTest() { Console.WriteLine("C"); }
}
public class C
{
public void CTest() { Console.WriteLine("C"); }
}
项目B:
public class B
{
public C GetC() { return new C(); }
}
public class B
{
public dynamic GetC() { return new C(); }
}
项目A:
public class A
{
static void Main(string[] args)
{
var b = new B();
// b.GetC();
}
}
public class A
{
static void Main(string[] args)
{
var b = new B();
b.GetC().CTest();
Console.ReadLine();
}
}
上面的代码将被编译,但是如果您试图取消注释Main中的最后一行,您将得到一个编译器错误:
类型ProjectC.C是在未引用的程序集中定义的。您必须添加对程序集“ProjectC,…”的引用
一种可能的解决方法是使用动态类型。动态类型导致类型解析延迟到运行时,这意味着以下修改将编译并成功运行。(我不推荐这种方法——因为您会失去编译时安全性和Intellisense支持——除非有令人信服的理由。) 项目C:
public class C
{
public void CTest() { Console.WriteLine("C"); }
}
public class C
{
public void CTest() { Console.WriteLine("C"); }
}
项目B:
public class B
{
public C GetC() { return new C(); }
}
public class B
{
public dynamic GetC() { return new C(); }
}
项目A:
public class A
{
static void Main(string[] args)
{
var b = new B();
// b.GetC();
}
}
public class A
{
static void Main(string[] args)
{
var b = new B();
b.GetC().CTest();
Console.ReadLine();
}
}
您也应该将参考项目C添加到项目A中。因为项目B依赖于项目C。为什么你没有从A中引用C?因为我的目标是在项目A中只有一个引用。谢谢你的回答!我同意你的看法。向不同的项目添加相同的引用比使用动态类型更好。