/// <summary> /// Initializes new instance of this type. /// </summary> /// <param name="targetType">Type of the target.</param> /// <param name="targetMember">The target member.</param> /// <param name="targetKind">Kind of the target.</param> public CompilerAttribute(Type targetType, string targetMember, TargetKind targetKind) { TargetTypeAssemblyQualifiedName = targetType.AssemblyQualifiedName; TargetMember = targetMember; TargetKind = targetKind; NumberOfGenericArguments = 0; }
static void Add(Dictionary <ulong, TargetKind> targets, ulong address, TargetKind kind) { if (!targets.TryGetValue(address, out var existingKind) || existingKind < kind) { targets[address] = kind; } }
private DelegateCreationInfo(IMethodNode constructor, MethodDesc targetMethod, TargetKind targetKind, IMethodNode thunk = null) { Constructor = constructor; TargetMethod = targetMethod; _targetKind = targetKind; Thunk = thunk; }
public void StandardBehavior(TargetKind targetKind) { var lastEvent = (string)null; var source = new EventSource(); var target = CreateTarget(targetKind, source, e => lastEvent = e); source.RaiseEventA1(); Assert.Null(lastEvent); target.SubscribeEvents(); source.RaiseEventA1(); Assert.Equal("EventA", lastEvent); source.RaisePropertyChanged("Test"); Assert.Equal("PropertyChanged: Test", lastEvent); lastEvent = null; target.UnsubscribeEvents(); source.RaiseEventA1(); Assert.Null(lastEvent); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="searchWord">検索文字</param> /// <param name="ignoreCase">大文字小文字を区別するか</param> /// <param name="vague">曖昧検索を行うか</param> public FileSearchData(String searchWord, bool ignoreCase, bool vague, TargetKind targetKind) { this.searchWord = searchWord; this.ignoreCase = ignoreCase; this.vague = vague; this.targetKind = targetKind; }
/// <summary> /// Initializes new instance of this type. /// </summary> /// <param name="targetTypeAssemblyQualifiedName">Assembly qualified name of target type.</param> /// <param name="targetMember">The target member.</param> /// <param name="targetKind">Kind of the target.</param> /// <param name="numberOfGenericArguments">The generic params count.</param> public CompilerAttribute(string targetTypeAssemblyQualifiedName, string targetMember, TargetKind targetKind, int numberOfGenericArguments) { TargetTypeAssemblyQualifiedName = targetTypeAssemblyQualifiedName; TargetMember = targetMember; TargetKind = targetKind; NumberOfGenericArguments = numberOfGenericArguments; }
public SecurityAttributeDescriptor(SecurityAttributeOverride @override, SecurityAttributeType attributeType, TargetKind target, string signature) { this.Override = @override; this.AttributeType = attributeType; this.Target = target; this.Signature = signature; }
public BlockInfo(TargetKind targetKind, NativeCodeBlockKind kind, ulong address, string?comment) { TargetKind = targetKind; Kind = kind; Address = address; Comment = comment; Instructions = new List <X86InstructionInfo>(); }
private DelegateCreationInfo(IMethodNode constructor, MethodDesc targetMethod, TargetKind targetKind, IMethodNode thunk = null) { Debug.Assert(targetKind != TargetKind.VTableLookup || MetadataVirtualMethodAlgorithm.FindSlotDefiningMethodForVirtualMethod(targetMethod) == targetMethod); Constructor = constructor; TargetMethod = targetMethod; _targetKind = targetKind; Thunk = thunk; }
private IEventTarget CreateTarget <T>(TargetKind targetKind, T source, Action <string> eventTracer) where T : EventSource { return(targetKind switch { TargetKind.Original => (IEventTarget) new Template.Original.EventTarget <int>(source, eventTracer), TargetKind.Weak => new Template.Weak.EventTarget <int>(source, eventTracer), TargetKind.Fody => new Template.Fody.EventTarget <int>(source, eventTracer), _ => throw new InvalidOperationException() });
public void BehaviorWithCustomEventArgs(TargetKind targetKind) { var lastEvent = (string)null; var source = new EventSource(); void Inner() { var target = CreateTarget(targetKind, source, e => lastEvent = e); source.RaiseEventA1(); Assert.Null(lastEvent); target.SubscribeEvents(); source.RaiseEventB(true); Assert.Equal("EventB True", lastEvent); source.RaiseEventB(false); Assert.Equal("EventB False", lastEvent); source.RaisePropertyChanged("Test"); Assert.Equal("PropertyChanged: Test", lastEvent); lastEvent = null; } Inner(); GCCollect(); source.RaiseEventA1(); var expected = IsWeak(targetKind) ? null : "EventA"; Assert.Equal(expected, lastEvent); source.RaiseEventB(true); expected = IsWeak(targetKind) ? null : "EventB True"; Assert.Equal(expected, lastEvent); source.RaisePropertyChanged("Test3"); expected = IsWeak(targetKind) ? null : "PropertyChanged: Test3"; Assert.Equal(expected, lastEvent); }
public WebDav(Logger logger, WebDavDb webDavDb, Target target, Document document, string urlStr, string depthStr, ContentType contentType, bool useEtag) { _logger = logger; _webDavDb = webDavDb; _document = document; _webDavKind = target.WebDavKind; _targetKind = target.TargetKind; _contentType = contentType; _useEtag = useEtag; if (depthStr != null) { if (depthStr == "0") { _depth = Depth.Depth0; } else if (depthStr == "1") { _depth = Depth.Depth1; } else if (depthStr == "infinity") { _depth = Depth.DepthInfinity; } } _fullPath = target.FullPath; _hrefHost = urlStr + target.Uri; //hrefをhttp://hostname と uri部分に分解する var index = _hrefHost.IndexOf("://"); if (index != -1) { _hrefUri = _hrefHost.Substring(index + 3); var pos = _hrefUri.IndexOf('/'); if (pos != -1) { _hrefUri = _hrefUri.Substring(pos); _hrefHost = _hrefHost.Substring(0, index + pos + 3); } } if (_hrefUri != "") { if (_targetKind == TargetKind.Dir && _hrefUri[_hrefUri.Length - 1] != '/') _hrefUri = _hrefUri + "/"; } //RFC 2518(5.2) コレクションに対するリクエストで最後に/(スラッシュ)なし //で参照されるとき自動的にこれを付加して処理することができる //この際、Content-Locationで見なしたURLをクライアントに返すべき //document.AddHeader("Content-Location",hrefHost+Util.SwapStr("%2f","/",HttpUtility.UrlEncode(hrefUri))); //document.AddHeader("Content-Location",HttpUtility.UrlPathEncode(hrefHost + hrefUri)); var href = Uri.EscapeDataString(_hrefUri); //Ver5.4.6 href = Util.SwapStr("%2F", "/", href); href = Util.SwapStr("%2f", "/", href); href = Util.SwapStr("+", "%20", href); document.AddHeader("Content-Location", _hrefHost + href); }
public void Should_Set_Target_Kind_If_Enabled_In_Settings(TargetKind kind, string expected) { // Given var fixture = new ILMergeRunnerFixture(); fixture.Settings.TargetKind = kind; // When var result = fixture.Run(); // Then Assert.Equal(expected, result.Args); }
private static string GetTargetKindName(TargetKind kind) { switch (kind) { case TargetKind.Dll: return "dll"; case TargetKind.Exe: return "exe"; case TargetKind.WinExe: return "winexe"; default: throw new NotSupportedException("The provided ILMerge target kind is not valid."); } }
ICustomAttributeProvider GetTarget(TargetKind kind, string target) { switch (kind) { case TargetKind.Type: return(GetType(target)); case TargetKind.Method: return(GetMethod(target)); default: throw new ArgumentException(); } }
public void Should_Set_Target_Kind_If_Enabled_In_Settings(TargetKind kind, string expected) { // Given var fixture = new ILMergeRunnerFixture(); fixture.Settings.TargetKind = kind; // When fixture.Run(); // Then fixture.ProcessRunner.Received(1).Start(Arg.Is <ProcessStartInfo>( p => p.Arguments == expected)); }
public void PerformanceOfSubscribeUnsubscribe(TargetKind targetKind) { const int numberOfLoops = 1000000; var stopwatch = new Stopwatch(); stopwatch.Restart(); var source = new EventSource(); var target = CreateTarget(targetKind, source, e => { }); for (var i = 0; i < numberOfLoops; i++) { target.SubscribeEvents(); target.UnsubscribeEvents(); } _output.WriteLine(targetKind + ": " + stopwatch.Elapsed); }
/// <summary> /// Determines the type of the target based on its kind. /// </summary> private static Type GetTargetType(TargetKind kind) { switch (kind) { case TargetKind.SolutionFolder: return(typeof(SolutionFolder)); case TargetKind.Project: return(typeof(Project)); case TargetKind.ProjectItem: return(typeof(ProjectItem)); case TargetKind.Solution: return(typeof(Solution)); default: throw new NotSupportedException(kind.ToString()); } }
/// <summary> /// Determines the type of converter to use for the target based on its kind. /// </summary> private static string GetConverterType(TargetKind kind) { switch (kind) { case TargetKind.Project: return(typeof(ProjectOrEmptyConverter).AssemblyQualifiedName); case TargetKind.ProjectItem: return(typeof(ProjectItemOrEmptyConverter).AssemblyQualifiedName); case TargetKind.Solution: return(typeof(SolutionOrEmptyConverter).AssemblyQualifiedName); case TargetKind.SolutionFolder: return(typeof(SolutionFolderOrEmptyConverter).AssemblyQualifiedName); default: throw new NotSupportedException(kind.ToString()); } }
void ProcessSecurityAttributeEntry(AttributeType type, TargetKind kind, string target) { ICustomAttributeProvider provider = GetTarget(kind, target); if (provider == null) { return; } switch (type) { case AttributeType.Critical: AddCriticalAttribute(provider); break; case AttributeType.SafeCritical: AddSafeCriticalAttribute(provider); break; } }
public void BehaviorWhenTargetIsOutOfScope(TargetKind targetKind) { var lastEvent = (string)null; var source = new EventSource(); void Inner() { var target = CreateTarget(targetKind, source, e => lastEvent = e); Assert.False(source.RaiseEventA1()); Assert.Null(lastEvent); target.SubscribeEvents(); Assert.True(source.RaiseEventA1()); Assert.Equal("EventA", lastEvent); Assert.True(source.RaisePropertyChanged("Test")); Assert.Equal("PropertyChanged: Test", lastEvent); lastEvent = null; } Inner(); GCCollect(); var expected = source.RaiseEventA1(); var isWeak = IsWeak(targetKind); Assert.Equal(!isWeak, expected); var expectedEvent = isWeak ? null : "EventA"; Assert.Equal(expectedEvent, lastEvent); }
public TargetInfo(HostTarget target) { if (target is HostType) { kind = TargetKind.Static; targetType = target.Type; } else if (target.InvokeTarget == null) { kind = TargetKind.Null; targetType = target.Type; } else { kind = TargetKind.Instance; targetType = target.Type; var tempType = target.InvokeTarget.GetType(); if (tempType != targetType) { instanceType = tempType; } } }
internal LuisTargetIntentResult(TargetKind targetKind, string apiVersion, double confidenceScore, object result) : base(targetKind, apiVersion, confidenceScore) { Result = result; TargetKind = targetKind; }
public AddressInfo(TargetKind kind) { Kind = kind; ILOffset = (int)IlToNativeMappingTypes.NO_MAPPING; }
public SecurityAttributeDescriptor(SecurityAttributeType attributeType, TargetKind target, string signature) : this(SecurityAttributeOverride.None, attributeType, target, signature) { }
void ProcessSecurityAttributeEntry (AttributeType type, TargetKind kind, string target) { ICustomAttributeProvider provider = GetTarget (kind, target); if (provider == null) { Console.Error.WriteLine ("Warning: entry '{0}' could not be found", target); return; } // we need to be smarter when applying the attributes (mostly SC) to types if (kind == TargetKind.Type) { TypeDefinition td = (provider as TypeDefinition); // ensure [SecurityCritical] types (well most) have a default constructor if ((type == AttributeType.Critical) && NeedsDefaultConstructor (td)) { if (GetDefaultConstructor (td) == null) { // Console.Error.WriteLine ("Info: adding default ctor for '{0}'", td); td.Methods.Add (CreateDefaultConstructor ()); } } // it's easier for some tools (e.g. less false positives in fxcop) // and also quicker for the runtime (one less lookup) if all methods gets decorated foreach (MethodDefinition method in td.Methods) { bool skip = false; AttributeType mtype = type; // there are cases where an SC cannot be applied to some methods switch (method.Name) { // e.g. everything we override from System.Object (which is transparent) case "Equals": skip = method.Parameters.Count == 1 && method.Parameters [0].ParameterType.FullName == "System.Object"; break; case "Finalize": case "GetHashCode": case "ToString": skip = !method.HasParameters; break; // e.g. some transparent interfaces, like IDisposable (implicit or explicit) // downgrade some SC into SSC to respect the override/inheritance rules case "System.IDisposable.Dispose": case "Dispose": skip = !method.HasParameters; break; } if (skip) continue; switch (mtype) { case AttributeType.Critical: AddCriticalAttribute (method); break; case AttributeType.SafeCritical: AddSafeCriticalAttribute (method); break; } } } switch (type) { case AttributeType.Critical: AddCriticalAttribute (provider); break; case AttributeType.SafeCritical: AddSafeCriticalAttribute (provider); break; } }
ICustomAttributeProvider GetTarget (TargetKind kind, string target) { switch (kind) { case TargetKind.Type: return GetType (target); case TargetKind.Method: return GetMethod (target); default: throw new ArgumentException (); } }
public WebDav(Logger logger, WebDavDb webDavDb, Target target, Document document, string urlStr, string depthStr, ContentType contentType, bool useEtag) { _logger = logger; _webDavDb = webDavDb; _document = document; _webDavKind = target.WebDavKind; _targetKind = target.TargetKind; _contentType = contentType; _useEtag = useEtag; if (depthStr != null) { if (depthStr == "0") { _depth = Depth.Depth0; } else if (depthStr == "1") { _depth = Depth.Depth1; } else if (depthStr == "infinity") { _depth = Depth.DepthInfinity; } } _fullPath = target.FullPath; _hrefHost = urlStr + target.Uri; //hrefをhttp://hostname と uri部分に分解する var index = _hrefHost.IndexOf("://"); if (index != -1) { _hrefUri = _hrefHost.Substring(index + 3); var pos = _hrefUri.IndexOf('/'); if (pos != -1) { _hrefUri = _hrefUri.Substring(pos); _hrefHost = _hrefHost.Substring(0, index + pos + 3); } } if (_hrefUri != "") { if (_targetKind == TargetKind.Dir && _hrefUri[_hrefUri.Length - 1] != '/') { _hrefUri = _hrefUri + "/"; } } //RFC 2518(5.2) コレクションに対するリクエストで最後に/(スラッシュ)なし //で参照されるとき自動的にこれを付加して処理することができる //この際、Content-Locationで見なしたURLをクライアントに返すべき //document.AddHeader("Content-Location",hrefHost+Util.SwapStr("%2f","/",HttpUtility.UrlEncode(hrefUri))); //document.AddHeader("Content-Location",HttpUtility.UrlPathEncode(hrefHost + hrefUri)); var href = Uri.EscapeDataString(_hrefUri); //Ver5.4.6 href = Util.SwapStr("%2F", "/", href); href = Util.SwapStr("%2f", "/", href); href = Util.SwapStr("+", "%20", href); document.AddHeader("Content-Location", _hrefHost + href); }
internal QuestionAnsweringTargetIntentResult(TargetKind targetKind, string apiVersion, double confidenceScore, KnowledgeBaseAnswers result) : base(targetKind, apiVersion, confidenceScore) { Result = result; TargetKind = targetKind; }
void ProcessSecurityAttributeEntry(AttributeType type, TargetKind kind, string target) { ICustomAttributeProvider provider = GetTarget(kind, target); if (provider == null) { Console.Error.WriteLine("Warning: entry '{0}' could not be found", target); return; } // we need to be smarter when applying the attributes (mostly SC) to types if (kind == TargetKind.Type) { TypeDefinition td = (provider as TypeDefinition); // ensure [SecurityCritical] types (well most) have a default constructor if ((type == AttributeType.Critical) && NeedsDefaultConstructor(td)) { if (GetDefaultConstructor(td) == null) { // Console.Error.WriteLine ("Info: adding default ctor for '{0}'", td); td.Methods.Add(CreateDefaultConstructor()); } } // it's easier for some tools (e.g. less false positives in fxcop) // and also quicker for the runtime (one less lookup) if all methods gets decorated foreach (MethodDefinition method in td.Methods) { bool skip = false; AttributeType mtype = type; // there are cases where an SC cannot be applied to some methods switch (method.Name) { // e.g. everything we override from System.Object (which is transparent) case "Equals": skip = method.Parameters.Count == 1 && method.Parameters [0].ParameterType.FullName == "System.Object"; break; case "Finalize": case "GetHashCode": case "ToString": skip = !method.HasParameters; break; // e.g. some transparent interfaces, like IDisposable (implicit or explicit) // downgrade some SC into SSC to respect the override/inheritance rules case "System.IDisposable.Dispose": case "Dispose": skip = !method.HasParameters; break; } if (skip) { continue; } switch (mtype) { case AttributeType.Critical: AddCriticalAttribute(method); break; case AttributeType.SafeCritical: AddSafeCriticalAttribute(method); break; } } } switch (type) { case AttributeType.Critical: AddCriticalAttribute(provider); break; case AttributeType.SafeCritical: AddSafeCriticalAttribute(provider); break; } }
internal NoneLinkedTargetIntentResult(TargetKind targetKind, string apiVersion, double confidenceScore, ConversationResult result) : base(targetKind, apiVersion, confidenceScore) { Result = result; TargetKind = targetKind; }
public SecurityAttributeDescriptor(SecurityAttributeOverride @override, SecurityAttributeType attributeType, TargetKind target, string signature) { this.Override = @override; this.AttributeType = attributeType; this.Target = target; this.Signature = signature; }
internal LuisTargetIntentResult(TargetKind targetKind, string apiVersion, float confidence, object internalResult) : base(targetKind, apiVersion, confidence) { InternalResult = internalResult; TargetKind = targetKind; }
public SecurityAttributeDescriptor(SecurityAttributeType attributeType, TargetKind target, string signature) : this(SecurityAttributeOverride.None, attributeType, target, signature) { }
void ProcessSecurityAttributeEntry (AttributeType type, TargetKind kind, string target) { ICustomAttributeProvider provider = GetTarget (kind, target); if (provider == null) return; switch (type) { case AttributeType.Critical: AddCriticalAttribute (provider); break; case AttributeType.SafeCritical: AddSafeCriticalAttribute (provider); break; } }
internal TargetIntentResult(TargetKind targetKind, string apiVersion, double confidenceScore) { TargetKind = targetKind; ApiVersion = apiVersion; ConfidenceScore = confidenceScore; }
internal TargetIntentResult(TargetKind targetKind, string apiVersion, float confidence) { TargetKind = targetKind; ApiVersion = apiVersion; Confidence = confidence; }