From adaedea86cc81d8af30ecf62d3b0b85ebbe1b2de Mon Sep 17 00:00:00 2001 From: GitHubPang <61439577+GitHubPang@users.noreply.github.com> Date: Tue, 17 May 2022 08:28:14 +0800 Subject: [PATCH] Fix typos --- docs/fundamentals/code-analysis/configuration-files.md | 2 +- docs/fundamentals/code-analysis/quality-rules/ca1060.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/fundamentals/code-analysis/configuration-files.md b/docs/fundamentals/code-analysis/configuration-files.md index 0f224b5ecb268..679ba8cb2b1f8 100644 --- a/docs/fundamentals/code-analysis/configuration-files.md +++ b/docs/fundamentals/code-analysis/configuration-files.md @@ -34,7 +34,7 @@ You can apply EditorConfig file conventions to a folder, a project, or an entire If you have an existing *.editorconfig* file for editor settings such as indent size or whether to trim trailing whitespace, you can place your code analysis configuration options in the same file. > [!TIP] -> Visual Studio provides an *.editorconfig* item template that makes is easy to add one of these files to your project. For more information, see [Add an EditorConfig file to a project](/visualstudio/ide/create-portable-custom-editor-options#add-an-editorconfig-file-to-a-project). +> Visual Studio provides an *.editorconfig* item template that makes it easy to add one of these files to your project. For more information, see [Add an EditorConfig file to a project](/visualstudio/ide/create-portable-custom-editor-options#add-an-editorconfig-file-to-a-project). ### Example diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1060.md b/docs/fundamentals/code-analysis/quality-rules/ca1060.md index 55c7c6178507d..94fcbb426d7ab 100644 --- a/docs/fundamentals/code-analysis/quality-rules/ca1060.md +++ b/docs/fundamentals/code-analysis/quality-rules/ca1060.md @@ -43,9 +43,9 @@ These classes are declared as `internal` (`Friend` in Visual Basic) and declare To fix a violation of this rule, move the method to the appropriate **NativeMethods** class. For most applications, moving P/Invokes to a new class that is named **NativeMethods** is enough. -However, if you are developing libraries for use in other applications, you should consider defining two other classes that are called **SafeNativeMethods** and **UnsafeNativeMethods**. These classes resemble the **NativeMethods** class; however, they are marked by using a special attribute called **SuppressUnmanagedCodeSecurityAttribute**. When this attribute is applied, the runtime does not perform a full stack walk to make sure that all callers have the **UnmanagedCode** permission. The runtime ordinarily checks for this permission at startup. Because the check is not performed, it can greatly improve performance for calls to these unmanaged methods, It also enables code that has limited permissions to call these methods. +However, if you are developing libraries for use in other applications, you should consider defining two other classes that are called **SafeNativeMethods** and **UnsafeNativeMethods**. These classes resemble the **NativeMethods** class; however, they are marked by using a special attribute called **SuppressUnmanagedCodeSecurityAttribute**. When this attribute is applied, the runtime does not perform a full stack walk to make sure that all callers have the **UnmanagedCode** permission. The runtime ordinarily checks for this permission at startup. Because the check is not performed, it can greatly improve performance for calls to these unmanaged methods. It also enables code that has limited permissions to call these methods. -However, you should use this attribute with great care. It can have serious security implications if it is implemented incorrectly.. +However, you should use this attribute with great care. It can have serious security implications if it is implemented incorrectly. For information about how to implement the methods, see the **NativeMethods** example, **SafeNativeMethods** example, and **UnsafeNativeMethods** example.