2015-05-14 3 views
-3

Я пытаюсь вернуть словарь над WCFиспользуя словарь с WCF

public Dictionary<LanguageList> GetLanguageSettingList() 
    { 
     Repository exrepo = new Repository(this.ConnectionString); 

     return exrepo.GetLanguageSettingList(); 
    } 


public partial class LanguageList 
{ 
    public string Language { get; set; } 
    public Nullable<int> Id { get; set; } 
} 

Ошибка читает Error 1 Using the generic type 'System.Collections.Generic.Dictionary<TKey,TValue>' requires 2 type arguments c:\users\xxxxx\documents\visual studio 2013\projects\service\service\service.svc.cs 74 16 SaService . Я не уверен, что еще мне нужно передать, чтобы вернуть словарь любой помощи? Thanks M

+1

Словарь имеет два аргумента типа не один. Кроме того, является ли языкList сериализуемым? –

+0

LanguageList просто возвращается как список из хранимой процедуры, но мое приложение нуждается в нем в качестве словаря – Mich

+0

Iv читал это не повезло http://stackoverflow.com/questions/1510185/how-to-serialize-dictionarystring-string -through-wcf – Mich

ответ

1

У вас синтаксис есть ошибки в коде. Это то, что вам действительно нужно:

public Dictionary<int, string> GetLanguageSettingList() 
    { 
     Repository exrepo = new Repository(this.ConnectionString); 

     return exrepo.GetLanguageSettingList().Where(c=>c.Id!=null).ToDictionary(c=>c.Id.Value, c=>c.Language); 
    } 


public partial class LanguageList 
{ 
    public string Language { get; set; } 
    public Nullable<int> Id { get; set; } 
} 
+0

pukka perfect :) – Mich

0

В общем, если вы собираетесь возвращать данные с помощью WCF. Определен класс данных. (В этом случае LanguageList) должны быть оформлены с [DataContract] и члены с DataMember

[DataContract] 
public class X 
{ 
    [DataMember] 
    int MyProp {get;set;} 
} 

дать, что идти.

+0

У меня уже был DataContract :) – Mich

Смежные вопросы