У меня странная ошибка в моем проекте:
Error 1 The type 'System.Xml.Linq.XDocument' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Xml.Linq, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
НО я добавил ссылку на сборку "System.Xml.Linq".Также у меня это есть в разделе «использование».
Пример кода:
using System;
using System.Collections.Generic;
using System.Xml.Linq;
//...........
APIConnection VK;
public override Collection MakeCollection(
CollectionRequestContext context)
{
//............
Dictionary<string, string> q = new Dictionary<string,string>();
foreach (string item in context.Query.AllKeys)
{
q.Add(item,context.Query.Get(item));
}
///Here I have 3 errors
VK= new APIConnection("", q, ErrorHandler, true);
//Error 1: The type 'System.Xml.Linq.XDocument'
//is defined in an assembly that is not referenced.
//You must add a reference to assembly 'System.Xml.Linq...
//
//Error 2: The best overloaded method match for
//'APIConnection.APIConnection(string,
// System.Collections.Generic.Dictionary<string,string>,
// ApiCallBackHandler<System.Xml.Linq.XDocument>, bool)'
//has some invalid arguments
//
//Error 3: Argument 3: cannot convert from 'method group' to
//'ApiCallBackHandler<System.Xml.Linq.XDocument>'
//............
}
void ErrorHandler(XDocument result)
{
if (result == null)
{
throw new Exception("Something wrong...");
}
}
На всякий случай: 1. У меня похожий проект с точно такой же частью кода, и он работает!2. Проект с ошибкой - это WebProject, а проект, который работает, это библиотека классов Silverlight
Почему у меня эта ошибка?
UPD
Конструктор APIConnection:
public APIConnection(string secret, Dictionary<string,string> query, ApiCallBackHandler<XDocument> errorCalback, bool testmode=false)
{
startInfo = new StartInfo();
if (query != null)
{
string tmp;
bool isRequiredSet = true;
isRequiredSet = query.TryGetValue("api_url", out startInfo.api_url) || isRequiredSet;
isRequiredSet = query.TryGetValue("api_id", out startInfo.api_id) || isRequiredSet;
isRequiredSet = query.TryGetValue("api_settings", out startInfo.api_settings) || isRequiredSet;
if (!isRequiredSet)
throw new ArgumentNullException("Missing required values.");
}
startInfo.server_secret = secret;
dataProvider = new DataProvider(startInfo,errorCalback);
}
И конструктор DataProviders:
public DataProvider(StartInfo info, Delegate globalErrorCallback=null)
{
startInfo = info;
_globalErrorCallback = globalErrorCallback;
}