Articles of génériques

Deserialize Stream to List ou tout autre type

Tentative de désérialiser un stream dans la List (ou tout autre type) et échouant avec l’erreur suivante: Les arguments de type de la méthode Foo.Deserialize(System.IO.Stream) ne peuvent pas être déduits de l’utilisation. Essayez de spécifier explicitement les arguments de type. Cela échoue: public static T Deserialize(this Stream stream) { BinaryFormatter bin = new BinaryFormatter(); return […]

Surcharge de C # avec des génériques: bug ou fonctionnalité?

Prenons un exemple simplifié suivant: void Foo(IEnumerable collection, params T[] items) { // … } void Foo(C collection, T item) where C : ICollection { // … } void Main() { Foo((IEnumerable)new[] { 1 }, 2); } Le compilateur dit: Le type ‘System.Collections.Generic.IEnumerable’ ne peut pas être utilisé comme paramètre de type ‘C’ dans le […]

EF – Impossible d’appliquer l’opérateur ‘==’ aux opérandes de type ‘TId’ et ‘TId’

J’ai cette classe générique, qui utilise Entity Framework 6.x. public class GenericRepository where TEntity, class, IIdentifyable { public virtual TEntity GetById(TId id) { using (var context = new DbContext()) { var dbSet = context.Set(); var currentItem = dbSet.FirstOrDefault(x => x.Id == id); return currentItem; } } public virtual bool Exists(TId id) { using (var context […]

Inclusion d’une classe générique dans le fichier Unity App.Config

J’ai une classe de type ISimpleCache que je veux append comme alias de type (puis un type) dans le fichier App.Config la ligne <typeAlias alias="ISimpleCacheOfIBrokeredDataObject" type="MyApplication.ISimpleCache, MyApplication” /> est évidemment faux en raison de la , mais je ne suis pas convaincu de leur échapper; est correct non plus. Je déchire actuellement mon code pour […]

Méthode générique Type de retour en tant que paramètre

J’ai une méthode d’extension qui fonctionne bien pour convertir les valeurs de chaîne en différents types, ce qui ressemble à ceci: public static T ToType (this ssortingng value, T property) { object parsedValue = default(T); Type type = property.GetType(); try { parsedValue = Convert.ChangeType(value, type); } catch (ArgumentException e) { parsedValue = null; } return […]

Rhino Mocks: Comment stub une méthode générique pour attraper un type anonyme?

Nous devons stub une méthode générique qui sera appelée en utilisant un type anonyme comme paramètre type. Considérer: interface IProgressReporter { T Report(T progressUpdater); } // Unit test arrange: Func returnArg = (x => x); // we wish to return the argument _reporter.Stub(x => x.Report(null).IgnoreArguments().Do(returnArg); Cela fonctionnerait si l’appel réel de .Report () dans la […]

Spécifiez la classe des génériques où T doit être une sous-classe d’un autre type

Voici ce que j’essaie de faire, même pas si possible .. Je crée BaseViewModel et je souhaite accepter les types hérités de Entity Considérons ce code: public abstract class BaseViewModel : NotificationObject, INavigationAware { public T MyEntity; public SomeMethod() { MyEntity.SomeEntityProperty = SomeValue; } } Donc, je veux dire que mon T hérité de Entity […]

Action de comparaison des delegates

N’hésitez pas à remettre en question ma santé mentale. Je dois déterminer si une Action ou une Action est l’instance d’origine. Ce que j’ai est une classe avec une variable de classe protected Action MessageCallback = null; lorsque ma abstract class Message est créée via une méthode abstraite, je force “les” à initialiser le MessageCallBack. […]

Comment écrire une méthode d’extension pour un type générique avec des contraintes sur les parameters de type?

Je travaille avec une plate-forme .NET spécifique à une tâche, qui est précompilée et non OpenSource. Pour certaines tâches, j’ai besoin d’étendre cette classe, mais pas en en héritant. Je veux simplement append une méthode. Au début, je veux vous montrer une classe existante factice: public class Masortingx where T : new() { … public […]

Pourquoi Nullable ne correspond pas en tant que type de référence pour les contraintes génériques

Dupliquer possible: Type Nullable en tant que paramètre générique possible? Je suis tombé sur une chose très étrange avec des contraintes de type génériques. J’ai un cours comme celui-ci: public SomeClass where T:class { } Cependant, j’ai constaté que je ne pouvais pas utiliser les types nullable comme je le pensais: new SomeClass(); J’ai une […]