簡體   English   中英

WCF。 創建通用服務合同。 客戶填寫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM