Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用.dll C#库中定义的方法_C#_.net_Dll - Fatal编程技术网

调用.dll C#库中定义的方法

调用.dll C#库中定义的方法,c#,.net,dll,C#,.net,Dll,我正试图用C#编写一个.dll库。代码如下: namespace StreamManager { public class ManageStream { public static class ThreadSafe { public static readonly object _locker = new object(); public static Bitmap _snapshot;

我正试图用C#编写一个.dll库。代码如下:

namespace StreamManager
{

    public class ManageStream
    {

        public static class ThreadSafe
        {
            public static readonly object _locker = new object();
            public static Bitmap _snapshot;

            public static Bitmap Snapshot
            {
                get
                {
                    lock (_locker)
                    {
                        return _snapshot;
                    }
                }
                set
                {
                    lock (_locker)
                    {
                        _snapshot = value;
                    }
                }
            }

        }

        public class CoupleFrames
        {
            public CoupleFrames(ColorImageFrame cif, Bitmap df)
            {
                this.colorFrame = cif;
                this.desktopFrame = df;
            }

            public ColorImageFrame colorFrame;
            public Bitmap desktopFrame;
        }

        public static long Multiply(long x, long y)
        {
            return (x * y);
        }
    }
}
namespace StreamManager
{
    public class ManageStream
    {
        public static long Multiply(long x, long y)
        {
            return (x * y);
        }
    }
}
但我无法从另一个C#应用程序访问这些方法

我只能浏览以下类别:

StreamManager.ManageStream.ThreadSafe
StreamManager.ManageStream.ThreadSafe


我无法使用
Multiply(长x,长y)
方法,也无法访问成员
快照

我看不出任何原因,只要将对DLL的引用添加到项目中,您就可以随时调用StreamManager.ManageStream.Multiply。似乎对我有用

我创建了一个新的类库项目,将以下代码设置为:

namespace StreamManager
{

    public class ManageStream
    {

        public static class ThreadSafe
        {
            public static readonly object _locker = new object();
            public static Bitmap _snapshot;

            public static Bitmap Snapshot
            {
                get
                {
                    lock (_locker)
                    {
                        return _snapshot;
                    }
                }
                set
                {
                    lock (_locker)
                    {
                        _snapshot = value;
                    }
                }
            }

        }

        public class CoupleFrames
        {
            public CoupleFrames(ColorImageFrame cif, Bitmap df)
            {
                this.colorFrame = cif;
                this.desktopFrame = df;
            }

            public ColorImageFrame colorFrame;
            public Bitmap desktopFrame;
        }

        public static long Multiply(long x, long y)
        {
            return (x * y);
        }
    }
}
namespace StreamManager
{
    public class ManageStream
    {
        public static long Multiply(long x, long y)
        {
            return (x * y);
        }
    }
}
然后,我将其编译为DLL,创建了一个新的控制台应用程序,向DLL添加了引用,并能够调用
StreamManager.ManageStream.Multiply没有问题。

似乎没有任何东西阻止您调用
StreamManager.ManageStream.Multiply
。。当你尝试时会发生什么?为什么不能?你收到错误消息了吗?你能告诉我你是如何访问这些成员的吗?很抱歉,如果你从来没有创建过任何C#dll,那么你可能会跳过它。。在使用应用程序和dll创建项目1和项目2之后,是否在应用程序中“添加了指向另一个项目的引用”?我已尝试关闭并重新打开visual studio,所有工作正常。很抱歉问了这么愚蠢的问题:\