【问题标题】:PCL working with shared code (cross platform library)PCL 使用共享代码(跨平台库)
【发布时间】:2014-10-20 18:53:36
【问题描述】:

我是 Xamarin 的新手,必须创建一个跨平台库(iOS、Android、Win Phone)。我很难创建一个适用于这 3 个平台的 pcl。 例如,这个 pcl 需要与打印机建立一个套接字连接。 在 pcl 中我不能使用 System.Net.Sockets 所以我的想法是创建一个方法并尝试使用共享项目调用他的代码。 当我执行代码时,会跳过#if __ANDROID__ .中的代码

PCL

public class Class1
{
    public void socket()
    {
        Conecta.Class oi = new Conecta.Class();
        oi.conecta();
    }
}

共享代码

#if __ANDROID__
using System.Net.Sockets;
#endif


namespace Conecta
{
    class Class 
    {
        public void conecta()
        {
#if __ANDROID__

        System.Net.Sockets.TcpClient clientSocket = new System.Net.Sockets.TcpClient();
        clientSocket.Connect("192.168.210.171", 4002);
        NetworkStream serverStream = clientSocket.GetStream();
        byte[] outStream = System.Text.Encoding.ASCII.GetBytes("teste \n");
        serverStream.Write(outStream, 0, outStream.Length);
        serverStream.Flush();

#endif
        }

    }
}

这只是一个测试,代码并不复杂 有人可以帮助我吗? 还有什么想法吗?

【问题讨论】:

    标签: android sockets visual-studio-2013 xamarin cross-platform


    【解决方案1】:

    我相信 PCL 还没有完成。 即使您将来可以解决打印机问题,您也会遇到很多其他问题。

    在我们的项目中,我们更喜欢将一个目录中的代码与不同的 .csproj 文件共享。

    PCL 的好处真的不值得粉和枪。

    【讨论】:

    • 我在共享代码方面遇到了问题,因为在他那里,我无法生成 DLL 或类似的东西。正确的?我需要安全地导出代码,但我不知道如何使用共享代码执行此操作。想法?
    • 所有项目都需要导出一个dll?使用共享代码无法完成。但是#if ANDROID 也不能与 PCL 一起使用。如果你真的希望它是跨平台的,你需要弄清楚如何使用平台无关的 API。但我认为你不需要那种痛苦。是否有理由坚持使用单独的 DLL 文件?
    • 是的。我的工作是开发用于与我的企业销售的打印机进行移动通信的库。借助 xamarin,我们希望为这种通信发布一个跨平台库。这就是为什么我不能显示代码并且这个想法只是一个 dll。但是现在这对于 xamarin 来说似乎是不可能的:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 2012-07-16
    • 2011-02-19
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多