搜了一下,代碼合同的古怪的,我想知道是否有人知道原因......代碼合同繼承
確定,所以時間對於一些代碼示例:
大會1:
[ContractClass(typeof(IServiceCodeContract<>))]
public interface IService<T> where T : class { ... }
[ContractClassFor(typeof(IService<>))]
public abstract class IServiceCodeContract<T> : IService<T> where T : class { ... }
public abstract class ServiceBase<T> : IService<T> where T : class { ... }
大會2:
[ContractClass(typeof(ICampaignServiceCodeContract))]
public class CampaignService : ServiceBase<Campaign>, ICampaignService { ... }
[ContractClassFor(typeof(ICampaignService))]
public abstract class ICampaignServiceCodeContract : IServiceCodeContract<Campaign>, ICampaignService { ... }
現在,這裏是我的問題... 在的代碼,最後行的編譯器是罰款,直到我真正編譯代碼,然後它突出「IServiceCodeContract <運動>」用藍線說,它無法找到實際的錯誤讀取類型:
The type or namespace name 'IServiceCodeContract' could not be found (are you missing a using directive or an assembly reference?)
我有一個從程序集2到程序集1的引用,我已經導入了「System.Diagnostics.Contracts」命名空間和缺少的類所在的命名空間。 該類聲明爲public並顯示在反射器內,所以爲什麼難道它找不到它?
程序集之間的代碼合同繼承有什麼問題嗎?
編輯:
只是一個想法,莫不是從另一個組件繼承合約基類的問題......沒有這些東西做在編譯時一些瘋狂的二進制注入的事情嗎?
還張貼在這裏:http://forums.asp.net/t/1770324.aspx/1
這種問題很容易用ReSharper解決。您可以在http://www.jetbrains.com/resharper/download下載試用版。祝你好運! – 2012-02-16 10:28:55
嗯......現在就下載吧。 – War 2012-02-16 10:36:23
這是如何幫助我解決問題的?你能提供一些細節嗎? – War 2012-02-16 10:58:40