[英]WCF. Create generic Servicecontract. Fill from client
也許它是重復的,但是我無法成功找到所需的答案。
實際上,我正在嘗試構建通用包裝程序,以便通過wcf使用Entity / L2Sql。 因此在服務器端:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
public class MyDbContext<TTable> : IMyDbContext<TTable> where TTable:class
{
private readonly DataContext _dbContext;
private readonly Table<Device> _table;
public MyDbContext()
{
_dbContext = new WCF_DataContext(connection);
_table = _dbContext.GetTable<TTable>();
}
public void InsertOnSubmit(TTable table)
{
_table.InsertOnSubmit(table);
}
...and the same stuff further...
}
在客戶端,我正在這樣使用
var client = new ServiceRef.MyDbContextClient<ServiceRef.PersonTable>();
client.GetData(); client.insertOnSubmit(); ...other stuff...
我知道WCF是為通用的東西,不同的語言以及它自然禁止直T所創建的,但是也許有一種方法可以用一些屬性或描述(例如T:DataContractAttribute,但這是無效的)來對此進行辯護。
也許我開始以錯誤的方式思考=)
對於某些視圖模型,我需要每個視圖模型一個DbContext,而不是簡短地使用(..dbcontext ..)
也許您可以在合同中使用已知的類型屬性。
您可以在此處找到更多信息:
https://msdn.microsoft.com/zh-CN/library/ms730167(v=vs.110).aspx
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.