현재 .net 4 dll을 .net 코어로 마이그레이션하는 중입니다. 단위 테스트를 이식하고 있지만 작동하지 않습니다.예외를 얻는 방법을 찾을 수 없습니다 : 'System.Runtime.CompilerServices.CallSiteBinder
이것은이 Matcher를 클래스의 나는 현재이 라인입니다
public class Matcher
{
public List<ElementMatcher> matchers{ get; set; }
public bool Match(string item, Dictionary<string, object> elements)
{
foreach(var matcher in matchers)
{
var result = matcher.Match(item, elements);
if (!result)
{
return false;
}
}
return true;
}
}
public class ElementMatcher
{
public string attribute { get; set; }
public IMatcher matcher { get; set; }
public virtual bool Match(string key, Dictionary<string, object> attributes)
{
if (attribute == null)
{
return matcher.Match(key);
}
if (attributes == null)
{
return false;
}
object value;
attributes.TryGetValue(attribute, out value);
if (value == null)
{
return false;
}
return matcher.Match((dynamic)value);
}
}
을 테스트있어 클래스 인 DLL
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.1",
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
}
내 project.json입니다 , 던지기 예외 :
matcher.Match(item, elements);
01 23,516,
그리고 이것은 내 단위 테스트 프로젝트의 현재 의존성이다 : 당신이 해설 섹션에 말씀을 바탕으로
<packages>
<package id="Castle.Core" version="4.0.0" targetFramework="net462" />
<package id="Microsoft.CSharp" version="4.3.0" targetFramework="net462" />
<package id="Microsoft.Win32.Primitives" version="4.0.1" targetFramework="net462" />
<package id="Moq" version="4.7.1" targetFramework="net462" />
<package id="System.Diagnostics.DiagnosticSource" version="4.0.0" targetFramework="net462" />
<package id="System.IO" version="4.1.0" targetFramework="net462" />
<package id="System.IO.FileSystem" version="4.0.1" targetFramework="net462" />
<package id="System.IO.FileSystem.Primitives" version="4.0.1" targetFramework="net462" />
<package id="System.IO.FileSystem.Watcher" version="4.0.0" targetFramework="net462" />
<package id="System.Linq" version="4.1.0" targetFramework="net462" />
<package id="System.Linq.Expressions" version="4.1.0" targetFramework="net462" />
<package id="System.Net.Http" version="4.1.0" targetFramework="net462" />
<package id="System.Net.NameResolution" version="4.0.0" targetFramework="net462" />
<package id="System.Reflection" version="4.1.0" targetFramework="net462" />
<package id="System.Runtime" version="4.1.0" targetFramework="net462" />
<package id="System.Runtime.Extensions" version="4.1.0" targetFramework="net462" />
<package id="System.Security.Cryptography.Algorithms" version="4.2.0" targetFramework="net462" />
<package id="System.Security.Cryptography.Encoding" version="4.0.0" targetFramework="net462" />
<package id="System.Security.Cryptography.Primitives" version="4.0.0" targetFramework="net462" />
<package id="System.Security.Cryptography.X509Certificates" version="4.1.0" targetFramework="net462" />
<package id="System.Text.RegularExpressions" version="4.1.0" targetFramework="net462" />
<package id="System.Threading.Thread" version="4.0.0" targetFramework="net462" />
</packages>
나만인가요? 아니면 자기 참조입니까? – vipersassassin
아니요, 기본 클래스는 Matcher이고 ElementMatcher 클래스에서 메서드 일치를 호출합니다.이 클래스는 다른 것이며 상속은 없습니다 – Jawen
ElementMatcher.Match의 소스 코드가 있습니까? –