我已經使用封閉泛型返回類型創建了WCF服務操作。我希望引用封閉泛型,因爲它是設計時間名稱,而不是運行時間名稱。例如WCF服務在封閉通用返回類型中的操作在客戶端中不可見
服務
[ServiceContract]
public interface IService1
{
[OperationContract]
Food<BurritoKinds> GetBurrito();
}
[DataContract]
public class Food<T>
{
public T Detail { get; set; }
}
[DataContract]
public enum BurritoKinds
{
[EnumMember]
Bean,
[EnumMember]
Beef
}
public class Service1 : IService1
{
public Food<BurritoKinds> GetBurrito()
{
return new Food<BurritoKinds> { Detail = BurritoKinds.Beef };
}
}
而且客戶
static void Main(string[] args)
{
var client = new Service1Client();
Food<BurritoKinds> burrito = client.GetBurrito(); //Compile Error
FoodOfBurritoKindsSSCqoCp1 burrito2 = client.GetBurrito();//Works Fine
}
我想用Food<BurritoKinds>
,而不必引用類型時使用FoodOfBurritoKindsSSCqoCp1
。我錯過了什麼來允許這樣做,或者有可能沒有創建一個新的DLL只是爲了保存Generic並與服務和客戶端共享它?謝謝。