2010-05-21 5 views
2

J'ai un assembly .net compilé avec le framework 3.5. Cet ensemble a une Foo classe avec deux remplacements de méthode:Utilisation d'assemblys .net 3.5 dans l'application web asp.net 2.0

public class Foo { 
    public T Set<T>(T value); 
    public T Set<T>(Func<T> getValueFunc); 
} 

Je fais référence cette assemblée dans mon application web asp.net 2.0 pour utiliser la première substitution de la méthode Set (sans Func).

Mais Surchauffe je reçois une erreur disant que je devrais faire référence à System.Core utiliser délégué System.Func ... mais je ne suis pas en utilisant ce type ...

est-il une solution pour résoudre ce ?

PS: Il n'existe aucune option pour convertir le cadre de mon application de ciblage d'applications Web.

+0

Avez-vous accès au code source de l'assembly référencé? –

+0

Oui, je le fais. Mais c'est une grande bibliothèque qui utilise massivement 3.5 en interne, donc recompiler contre 2.0 n'est pas non plus l'option ... –

Répondre

2

Convertissez votre application Web pour utiliser .NET 3.5 (ou 4.0). Après ça, tout ira bien.

Si vous devez en tenir à .NET 2.0, voici mes idées

  • Essayez de référencer l'ensemble System.Core en naviguant sur le dll et en ajoutant manuellement. Le .NET Framework 3.5 utilise le même CLR que 2.0, il devrait donc fonctionner s'il n'a pas de références foirées. (par exemple des éléments de .NET 3.5 que vous ne pouvez pas ajouter)
+0

L'a résolu en référençant System.Core comme décrit ici (http://abdullin.com/journal/2008/12/23 /how-to-use-net-35-features-and-c-30-syntax-in-net-20.html). Impossible d'ajouter une référence juste en parcourant pour assembler sur mon système ... –

+0

@masterik - Je suis heureux que vous pourriez le résoudre. – Venemo

-1

Vous devez mettre à jour votre application Web vers .net 3.5 pour que cela fonctionne ou recompiler l'assembly à partir de soce ciblant .net 2.0 si cela est possible.

0

Ce n'est pas parce que vous n'appelez pas une surcharge particulière dans votre code que le compilateur peut l'ignorer, s'il existe dans une classe. utilisent alors le compilateur a besoin de savoir ce que c'est. Vous avez besoin de référence System.Core ou de convertir votre projet à utiliser .net 3.5

Questions connexes