【发布时间】:2015-11-11 17:31:03
【问题描述】:
我在 C# 库中有以下代码:
using System;
using System.Drawing;
using System.IO;
using System.Text;
namespace Gameloop.Util.Web
{
public class QPayload : IDisposable
{
private byte[] _content;
private Stream _stream;
public readonly bool IsStream;
public QPayload()
{
Content = new byte[0];
IsStream = false;
}
public QPayload(byte[] bytes)
{
Content = bytes;
IsStream = false;
}
public QPayload(string chars, Encoding encoding = null)
{
if (encoding == null)
encoding = Encoding.UTF8;
Content = encoding.GetBytes(chars);
IsStream = false;
}
public QPayload(Image image)
{
MemoryStream ms = new MemoryStream();
image.Save(ms, image.RawFormat);
Content = ms.ToArray();
IsStream = false;
}
public QPayload(Stream stream, bool readNow = false)
{
if (readNow)
{
_content = ReadToEnd(stream);
IsStream = false;
return;
}
Stream = stream;
IsStream = true;
}
public byte[] Content
{
get
{
if (_content != null)
return _content;
return Content = ReadToEnd(_stream);
}
private set
{
_content = value ?? new byte[0];
}
}
public Stream Stream
{
get
{
if (_stream != null)
return _stream;
return Stream = new MemoryStream(Content);
}
private set
{
_stream = value ?? new MemoryStream(new byte[0]);
}
}
public void Dispose()
{
Stream.Dispose();
}
public string AsString(Encoding encoding = null)
{
if (encoding == null)
encoding = Encoding.UTF8;
return encoding.GetString(Content);
}
public Image AsImage()
{
using (MemoryStream ms = new MemoryStream(Content))
{
return Image.FromStream(ms);
}
}
public static byte[] ReadToEnd(Stream stream)
{
using (stream)
{
using (MemoryStream memoryStream = new MemoryStream())
{
stream.CopyTo(memoryStream);
return memoryStream.ToArray();
}
}
}
}
}
当我尝试在使用此库的项目中使用以下代码时,出现错误。
QPayload pay = new QPayload("text");
“System.Drawing.Image”类型是在一个不是 参考。您必须添加对程序集“System.Drawing”的引用, 版本=4.0.0.0,文化=中性,PublicKeyToken=xyz'
我在这个库中有许多其他类使用 System.Web 等引用。但是,当我使用这些类时,要求我引用 System.Web 等没有错误。
为什么要求我引用仅由引用使用的类型?
【问题讨论】:
-
你能在项目的“参考资料”文件夹中查看参考资料吗?更具体的 System.Drawing ?当这个 dll 被定位时,你能检查一下版本吗,它是你加载的 dll 的版本以及请求的(版本=4.0.0.0)
标签: c# visual-studio-2013