1 #Region "Microsoft.VisualBasic::d3381a220021d85959f81ad7dab17afc, Microsoft.VisualBasic.Core\CommandLine\InteropService\InCompatible.vb"
2
3     ' Author:
4     
5     '       asuka (amethyst.asuka@gcmodeller.org)
6     '       xie (genetics@smrucc.org)
7     '       xieguigang (xie.guigang@live.com)
8     
9     ' Copyright (c) 2018 GPL3 Licensed
10     
11     
12     ' GNU GENERAL PUBLIC LICENSE (GPL3)
13     
14     
15     ' This program is free software: you can redistribute it and/or modify
16     ' it under the terms of the GNU General Public License as published by
17     ' the Free Software Foundation, either version 3 of the License, or
18     ' (at your option) any later version.
19     
20     ' This program is distributed in the hope that it will be useful,
21     ' but WITHOUT ANY WARRANTY; without even the implied warranty of
22     ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23     ' GNU General Public License for more details.
24     
25     ' You should have received a copy of the GNU General Public License
26     ' along with this program. If not, see <http://www.gnu.org/licenses/>.
27
28
29
30     ' /********************************************************************************/
31
32     ' Summaries:
33
34     '     Class InCompatibleAttribute
35     
36     '         Function: CLRProcessCompatible, ToString
37     
38     
39     ' /********************************************************************************/
40
41 #End Region
42
43 Imports System.Reflection
44
45 Namespace CommandLine.InteropService
46
47     ''' <summary>
48     ''' 这个CLI方法是和.NET的<see cref="System.Diagnostics.Process"/>调用不兼容的
49     ''' </summary>
50     <AttributeUsage(AttributeTargets.Method, AllowMultiple:=False, Inherited:=True)>
51     Public Class InCompatibleAttribute : Inherits Attribute
52
53         ''' <summary>
54         ''' 判断目标方法是否是和CLR调用兼容?
55         ''' </summary>
56         ''' <param name="CLI"></param>
57         ''' <returns></returns>
58         Public Shared Function CLRProcessCompatible(CLI As MethodInfo) As Boolean
59             Dim attrs = CLI.GetCustomAttribute(Of InCompatibleAttribute)
60
61             If attrs Is Nothing Then
62                 Return True
63             Else
64                 Return False
65             End If
66         End Function
67
68         Public Overrides Function ToString() As String
69             Return "Incompatible with CLR Process Calls"
70         End Function
71     End Class
72 End Namespace