Pregunta

¿Son los métodos de extensión disponible en el marco de la CE, así? Tengo un método de extensión de cadena que funciona bien en un proyecto formas de las ventanas, sin embargo no lo puedo construir en la aplicación de PocketPC.

Yo pensé que sería una cosa fácil de averiguar, sin embargo he podido encontrar ninguna información con respecto a los métodos de extensión en PocketPC.

Editar Lamentablemente este fue mi error. Escribí el método de extensión en Visual Studio 2008, sin embargo el proyecto PocketPC estaba siendo compilada en Visual Studio 2005, lo que no me di cuenta. Bueno, eso es una hora de mi vida yo nunca estoy volviendo. Gracias a todos por las respuestas de todos modos.

¿Fue útil?

Solución

Se busca aclarar un poco de confusión en este punto. Los métodos de extensión son una característica del compilador, no necesariamente una versión particular de la estructura. Por lo tanto, los métodos de extensión se pueden utilizar en cualquier plataforma donde hay una versión del compilador que soporta tanto los métodos de extensión y dicha plataforma.

El compilador C # 3.0 objetivo puede bajar a 2,0 marcos y compatible con los métodos de extensión por lo que debe estar disponible en el marco compacto.

Lo único que el marco de trabajo proporciona en realidad para los métodos de extensión es la extensionAttribute. Sin embargo, esto no tiene ninguna funcionalidad asociada a ella y se puede definir por su aplicación si no está disponible. Aquí es un post que escribí sobre el tema

Otros consejos

Sí, están apoyados en la FQ 3.5. Si está utilizando CF 2.0 se tendrá que definir la extensionAttribute y luego se va a trabajar.

    // this is a definition of a 3.5 class for use in 2.0.  If we upgrade to target CF3.5, we will need to remove it...
    namespace System.Runtime.CompilerServices 
    { 
        public class ExtensionAttribute : Attribute { } 
    }

namespace TestExtension
{
    public static class Extensions
    {
        public static int TestMethod(this string value)
        {
            return value.ToString();
        }
    }
}

Se apoyan en el marco compacto de acuerdo con la esta entrada de blog . Sin embargo, espero que requieren la versión Compact Framework 3.5. Qué versión está usando?

¿Qué versión del marco que está destinada a una audiencia? Si el idioma de CF 2.0 de VS2008, es posible que tenga que declarar extensionAttribute ...

namespace System.Runtime.CompilerServices
{
    [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class
         | AttributeTargets.Method)]
    public sealed class ExtensionAttribute : Attribute {}
}

Se puede utilizar con .NET Compact Framework 2.0 y VS2008 través de un pequeño corte de acuerdo con la esta blog.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top