¿Por qué no puedo hacer referencia a System.net.sockets en una biblioteca de clase portátil usando Xamarin?
-
21-12-2019 - |
Pregunta
Estoy tratando de usar la API de System.net.sockets en una biblioteca de clase portátil para que mis proyectos puedan reutilizar el código para las conexiones de socket.Pero no puedo hacer referencia a ese espacio de nombres en mi código.
Como lo entiendo, PCL le limita a las asambleas que están disponibles en todas las plataformas específicas.Pero estoy dirigido a iOS, Android y .NET 4.5 (usando Xamarin), y todos estos deben tener el conjunto System.dll que contenga la API.¿Qué estoy perdiendo?
Solución
Como está en este momento, hay no Perfil de PCL seleccionado solo
- Framework (4 / 4.03 / 4.5 / 4.5.1)
- xamarin.Android
- xamarin.ios
Si, por ejemplo, intenta definir una biblioteca de clase portátil con solo estos objetivos, el perfil PCL del proyecto agregará automáticamente el objetivo de Silverlight 5 :
Aunque Silverlight 5 apoya algunos de los system.net.sockets Tipos de espacio de nombres , ninguno de estos tipos se ha transferido a cualquier perfil de PCL. Por lo que puedo decir, la funcionalidad PCL System.net se limita a la red HTTP.
Por ejemplo, si se selecciona .NET Framework 4.5 , esto se corresponderá con el perfil de PCL 24, para el cual los contenidos system.net.dll son los siguientes: < / p>
Otros consejos
Usando el desarrollo avanzado de PCL alias "cebo y interruptor", es posible que pueda hacer esto
ver link