Portable项目类型之前多个目标类型共享代码的方式

这两天正好在做共享代码,顺便写个体会。在Visual Studio 2012的Portable项目类型之前,为跨多个技术目标类型(Client Profile、Full Framework、Silverlight等)共享代码一般有两种方式:

1、共享代码间的复制,比如Class Library和Silverlight Class Library两个项目,一方简单复制另一方的源代码进行编译。好处是对于复制的代码可以进行一定程度的修改,缺点始终只是一个拷贝。

2、添加链接,始终只需要修改一处,但可能存在一定程度的不兼容性,这个时候就需要通过条件编译来解决。我个人比较推崇第二种方式,对于不同类型的项目可以根据需要Add As Link,繁琐点在于同一个类型可能存在的差异。从哪一个目标共享给另一个目标也很重要,比如Silverlight的Rect结构没有Inflate函数,利用扩展函数添加实现(这个Inflate函数返回一个Rect的拷贝),WPF的Rect结构内置Inflate函数(操作当前结构)。

你可能感兴趣的:(table)