Exemple #1
0
 /// <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;
 }
Exemple #2
0
 static void Add(Dictionary <ulong, TargetKind> targets, ulong address, TargetKind kind)
 {
     if (!targets.TryGetValue(address, out var existingKind) || existingKind < kind)
     {
         targets[address] = kind;
     }
 }
Exemple #3
0
 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;
 }
Exemple #6
0
 /// <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;
 }
Exemple #8
0
 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);
        }
Exemple #12
0
        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);
        }
Exemple #13
0
            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.");
     }
 }
Exemple #15
0
        ICustomAttributeProvider GetTarget(TargetKind kind, string target)
        {
            switch (kind)
            {
            case TargetKind.Type:
                return(GetType(target));

            case TargetKind.Method:
                return(GetMethod(target));

            default:
                throw new ArgumentException();
            }
        }
Exemple #16
0
            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);
        }
Exemple #18
0
        /// <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());
            }
        }
Exemple #19
0
        /// <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());
            }
        }
Exemple #20
0
        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);
        }
Exemple #22
0
            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;
                    }
                }
            }
Exemple #23
0
 internal LuisTargetIntentResult(TargetKind targetKind, string apiVersion, double confidenceScore, object result) : base(targetKind, apiVersion, confidenceScore)
 {
     Result     = result;
     TargetKind = targetKind;
 }
Exemple #24
0
 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)
 {
 }
Exemple #26
0
		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;
			}
		}
Exemple #27
0
		ICustomAttributeProvider GetTarget (TargetKind kind, string target)
		{
			switch (kind) {
			case TargetKind.Type:
				return GetType (target);
			case TargetKind.Method:
				return GetMethod (target);
			default:
				throw new ArgumentException ();
			}
		}
Exemple #28
0
        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;
 }
Exemple #30
0
        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;
 }
Exemple #33
0
 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;
 }
Exemple #37
0
 internal TargetIntentResult(TargetKind targetKind, string apiVersion, float confidence)
 {
     TargetKind = targetKind;
     ApiVersion = apiVersion;
     Confidence = confidence;
 }