艾伟_转载:关于.NET中的循环引用

  在现在开发模式日益增多,框架泛滥的时代里,人们越来越多的依赖于固有的框架模式的开发而忽略了对项目底层架构的理解。所以在部署项目结构的时候,会遇到“循环引用”这个问题,今天我就遇到了。

  其实说起来并不复杂,就是我有5个项目A,B,C,D,E,然后我在项目A中引用了B的类,然后又在B中引用了C的类,最后又在C中引用了A中的类,这就构成了循环引用。

  

  那么碰到这样的问题,怎么解决呢?

  解决方案一:

    我们考虑创建新的一个项目Z,然后分别添加对A,B,C的引用,这样A,B,C只要引用Z就行了。

  解决方案二:

    也可以创建一个类库项目,然后将A,B,C,D,E,F……中需要引用的类都放到这个类库项目中去,然后在引用的时候都引用这个类库项目就ok了。

  其实以上两种解决方案有异曲同工之处,就是通过创建“第三方”项目来做一个桥梁,整合需要共用的类,然后一起引用它。

  总之还是要在实际的项目中去体会,去感受!

时间: 2024-10-23 15:17:35

艾伟_转载:关于.NET中的循环引用的相关文章

JavaScript中的内存泄露模式:在JavaScript应用程序中处理循环引用

如果您知道内存泄漏的起因,那么在 JavaScript 中进行相应的防范就应该相当容易.在这篇文章中,作者 Kiran Sundar 和 Abhijeet Bhattacharya 将带您亲历 JavaScript 中的循环引用的全部基本知识,向您介绍为何它们会在某些浏览器中产生问题,尤其是在结合了闭包的情况下.在了解了您应该引起注意的常见内存泄漏模式之后,您还将学到应对这些泄漏的诸多方法. JavaScript 是用来向 Web 页面添加动态内容的一种功能强大的脚本语言.它尤其特别有助于一些日

艾伟_转载:.NET设计模式:单件模式(Singleton Pattern)

概述 Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点.这就提出了一个问题:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?客户程序在调用某一个类时,它是不会考虑这个类是否只能有一个实例等问题的,所以,这应该是类设计者的责任,而不是类使用者的责任. 从另一个角度来说,Singleton模式其实也是一种职责型模式.因为我们创建了一个对象,这个对象扮演了独一无二的角色,在这个单独的对象实例中,它集中了它所属类的所有权力,同时它也肩负了行使这种权力的职责! 意图

艾伟:关于.NET中的循环引用

在现在开发模式日益增多,框架泛滥的时代里,人们越来越多的依赖于固有的框架模式的开发而忽略了对项目底层架构的理解.所以在部署项目结构的时候,会遇到"循环引用"这个问题,今天我就遇到了. 其实说起来并不复杂,就是我有5个项目A,B,C,D,E,然后我在项目A中引用了B的类,然后又在B中引用了C的类,最后又在C中引用了A中的类,这就构成了循环引用. 那么碰到这样的问题,怎么解决呢? 解决方案一: 我们考虑创建新的一个项目Z,然后分别添加对A,B,C的引用,这样A,B,C只要引用Z就行了. 解

艾伟_转载:VS 2010 和 .NET 4.0 系列之《添加引用对话框的改进》篇

本系列文章导航 VS 2010 和 .NET 4.0 系列之<ASP.NET 4 中的SEO改进 >篇 VS 2010 和 .NET 4.0 系列之<干净的Web.Config文件 >篇 VS 2010 和 .NET 4.0 系列之<起始项目模板>篇 VS 2010 和 .NET 4.0 系列之<多定向支持>篇 VS 2010 和 .NET 4.0 系列之<多显示器支持>篇 VS 2010 和 .NET 4.0 系列之<代码优化的Web开发

艾伟_转载:Silverlight陷阱:注意程序集引用问题

假定我要用Silverlight类库实现一些通用控件,然后在应用程序中引用这个控件库.当然,控件通常也要访问其他一些第三方或开源的开发包,例如Silverlight Toolkit. 于是这个项目的依赖关系如下: Silverlight Application => Silverlight Control => Silverlight Toolkit.在Visual Studio中创建好项目之间的引用关系: 然后在类库项目中创建一个简单的控件,比如: UserControl x:Class=

关于.NET中的循环引用

在现在开发模式日益增多,框架泛滥的时代里,人们越来越多的依赖于固有的框架模式的开发而忽略了对项目底层架构的理解.所以在部署项目结构的时候,会遇到"循环引用"这个问题,今天我就遇到了. 其实说起来并不复杂,就是我有5个项目A,B,C,D,E,然后我在项目A中引用了B的类,然后又在B中引用了C的类,最后又在C中引用了A中的类,这就构成了循环引用. 那么碰到这样的问题,怎么解决呢? 解决方案一: 我们考虑创建新的一个项目Z,然后分别添加对A,B,C的引用,这样A,B,C只要引用Z就行了. 解

艾伟_转载:在Mono中创建ASP.NET程序

一只可爱的猴子: 一次偶然的机会碰到这只猴子,并在工作中也用到它了.现将自己的使用经验分享与此(以OpenSUSE为例介绍). 对于不熟悉Mono的朋友来说,Mono就是.Net在Linux和其它操作系统上的实现(Unix.Mac.iphone.Windows...).Mono的官方网站是:http://www.mono-project.com 严格来讲,Mono是一个开源的.跨平台的C#语言和其CLR的实现,并与微软的.NET二进制兼容.很绕口吧,这是Mono官方网站写的:An open so

艾伟_转载:.NET 4.0中数组的新增功能

1.两数组是否"相等"? 在实际开发中,有时我们需要比对两个数组是否拥有一致的元素,例如,以下两个数组由于拥有相同的元素,因此被认为是相等的: int[] arr1 = new int[]{1,2,3,4};int[] arr2 = new int[]{1,2,3,4}; 在.NET早期版本中,要实现上述数组比对功能,必须自己动手编写一个函数,在其内部使用循环语句逐个比较两个数组的对应元素,才知道这两个数组是否相等. 在.NET 4.0中,数组基类Array实现了一个新增的接口IStr

艾伟_转载:VS 2010 和 .NET 4.0 系列之《在VS 2010中查询和导航代码》篇

本系列文章导航 VS 2010 和 .NET 4.0 系列之<ASP.NET 4 中的SEO改进 >篇 VS 2010 和 .NET 4.0 系列之<干净的Web.Config文件 >篇 VS 2010 和 .NET 4.0 系列之<起始项目模板>篇 VS 2010 和 .NET 4.0 系列之<多定向支持>篇 VS 2010 和 .NET 4.0 系列之<多显示器支持>篇 VS 2010 和 .NET 4.0 系列之<代码优化的Web开发