Permalink
Browse files

- native extensions removed (wrappers, typedefs, ext manager, core up…

…dated)

- sample configs updated
- deployment cleanup

Originally checked in by DEVSENSE\Jakub on 2014-03-27 16:23:02.743 as Changeset 5095

git-tfs-id: [https://devsense.visualstudio.com/DefaultCollection]$/Phalanger/Main;C7174
  • Loading branch information...
1 parent 9fd956f commit 4a21a54676dd99e5a5d6b75c04e1ab965cffa51c @jakubmisek jakubmisek committed Feb 7, 2015
Showing with 218 additions and 15,577 deletions.
  1. +0 −16 Deployment/Bin/gacall-u.cmd
  2. +7 −14 Deployment/Machine.config
  3. +0 −438 Deployment/TypeDefs/php_pgsql.xml
  4. +96 −467 Deployment/Web.config
  5. BIN Deployment/Wrappers/php_bcmath.mng.dll
  6. BIN Deployment/Wrappers/php_big_int.mng.dll
  7. BIN Deployment/Wrappers/php_bz2.mng.dll
  8. BIN Deployment/Wrappers/php_calendar.mng.dll
  9. BIN Deployment/Wrappers/php_com.mng.dll
  10. BIN Deployment/Wrappers/php_cpdf.mng.dll
  11. BIN Deployment/Wrappers/php_crack.mng.dll
  12. BIN Deployment/Wrappers/php_curl.mng.dll
  13. BIN Deployment/Wrappers/php_db.mng.dll
  14. BIN Deployment/Wrappers/php_dba.mng.dll
  15. BIN Deployment/Wrappers/php_dbase.mng.dll
  16. BIN Deployment/Wrappers/php_dbx.mng.dll
  17. BIN Deployment/Wrappers/php_domxml.mng.dll
  18. BIN Deployment/Wrappers/php_exif.mng.dll
  19. BIN Deployment/Wrappers/php_fileinfo.php5.mng.dll
  20. BIN Deployment/Wrappers/php_filepro.mng.dll
  21. BIN Deployment/Wrappers/php_ftp.mng.dll
  22. BIN Deployment/Wrappers/php_gd2.mng.dll
  23. BIN Deployment/Wrappers/php_gettext.mng.dll
  24. BIN Deployment/Wrappers/php_hyperwave.mng.dll
  25. BIN Deployment/Wrappers/php_iconv.mng.dll
  26. BIN Deployment/Wrappers/php_image.mng.dll
  27. BIN Deployment/Wrappers/php_imap.mng.dll
  28. BIN Deployment/Wrappers/php_interbase.mng.dll
  29. BIN Deployment/Wrappers/php_java.mng.dll
  30. BIN Deployment/Wrappers/php_ldap.mng.dll
  31. BIN Deployment/Wrappers/php_mbstring.mng.dll
  32. BIN Deployment/Wrappers/php_mcrypt.mng.dll
  33. BIN Deployment/Wrappers/php_mhash.mng.dll
  34. BIN Deployment/Wrappers/php_mime_magic.mng.dll
  35. BIN Deployment/Wrappers/php_ming.mng.dll
  36. BIN Deployment/Wrappers/php_msql.mng.dll
  37. BIN Deployment/Wrappers/php_mssql.mng.dll
  38. BIN Deployment/Wrappers/php_mysql.mng.dll
  39. BIN Deployment/Wrappers/php_odbc.mng.dll
  40. BIN Deployment/Wrappers/php_openssl.mng.dll
  41. BIN Deployment/Wrappers/php_pdf.mng.dll
  42. BIN Deployment/Wrappers/php_pgsql.mng.dll
  43. BIN Deployment/Wrappers/php_printer.mng.dll
  44. BIN Deployment/Wrappers/php_shmop.mng.dll
  45. BIN Deployment/Wrappers/php_snmp.mng.dll
  46. BIN Deployment/Wrappers/php_sockets.mng.dll
  47. BIN Deployment/Wrappers/php_xml.mng.dll
  48. BIN Deployment/Wrappers/php_xmlrpc.mng.dll
  49. BIN Deployment/Wrappers/php_xslt.mng.dll
  50. BIN Deployment/Wrappers/php_yaz.mng.dll
  51. BIN Deployment/Wrappers/php_zip.mng.dll
  52. BIN Deployment/Wrappers/php_zip.php5.mng.dll
  53. BIN Deployment/Wrappers/php_zlib.mng.dll
  54. +67 −128 Solutions/Phalanger.sln
  55. +7 −7 Source/ClassLibrary/Miscellaneous.cs
  56. +2 −2 Source/ClassLibrary/PhpIni.CLR.cs
  57. +2 −10 Source/ClassLibrary/PhpIniOptions.CLR.cs
  58. +0 −9 Source/ClassLibrary/Streams.cs
  59. +5 −31 Source/Core/Configuration.CLR.cs
  60. +0 −3 Source/Core/Core.csproj
  61. +1 −52 Source/Core/Emit/ReflectionCache.cs
  62. +0 −3,322 Source/Core/Externals.CLR.cs
  63. +1 −3 Source/Core/Info.cs
  64. +0 −108 Source/Core/PhpStream.CLR.cs
  65. +0 −82 Source/Core/Reflection/Objects.cs
  66. +1 −2 Source/Core/RequestContext.CLR.cs
  67. +0 −14 Source/Core/ScriptContext.CLR.cs
  68. +0 −114 Source/Core/StreamWrappers.CLR.cs
  69. +27 −11 Source/Core/StreamWrappers.cs
  70. +2 −11 Source/Core/Utils.CLR.cs
  71. +0 −165 Source/ExtSupport/ExtSupport.cpp
  72. +0 −170 Source/ExtSupport/ExtSupport.h
  73. +0 −2,024 Source/ExtSupport/Module.cpp
  74. +0 −1,494 Source/ExtSupport/Module.h
  75. +0 −34 Source/ExtSupport/PHP4/AssemblyInfo.cpp
  76. +0 −101 Source/ExtSupport/PHP4/ExtSupport4.rc
  77. +0 −523 Source/ExtSupport/PHP4/ExtSupport4.vcxproj
  78. +0 −211 Source/ExtSupport/PHP4/Functions.cpp
  79. +0 −635 Source/ExtSupport/PhpMarshaler.cpp
  80. +0 −925 Source/ExtSupport/RemoteDispatcher.cpp
  81. +0 −251 Source/ExtSupport/Request.cpp
  82. +0 −643 Source/ExtSupport/Request.h
  83. +0 −552 Source/ExtSupport/StreamProxy.cpp
  84. +0 −308 Source/ExtSupport/StreamProxy.h
  85. +0 −1,481 Source/ExtSupport/WrapperGen.cpp
  86. +0 −390 Source/ExtSupport/WrapperGen.h
  87. +0 −26 Source/ExtUtil/AssemblyInfo.cs
  88. +0 −261 Source/ExtUtil/ExtUtil.cs
  89. +0 −162 Source/ExtUtil/ExtUtil.csproj
  90. +0 −24 Source/PhpConfig/AssemblyInfo.cs
  91. +0 −353 Source/PhpConfig/Main.cs
@@ -1,16 +0,0 @@
-cd %~dp0
-PATH = %PATH%;"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools"
-
-gacutil /u PhpNetCore
-gacutil /u PhpNetClassLibrary
-
-gacutil /u php4ts
-gacutil /u php5ts
-
-gacutil /u PhpNetXmlDom
-gacutil /u PhpNetMsSql
-gacutil /u PhpNetPDO
-gacutil /u PhpNetPDOSQLite
-gacutil /u PhpNetPDOSQLServer
-gacutil /u PhpNetSQLite
-gacutil /u PhpNetZip
@@ -4,14 +4,14 @@
<configSections>
<!-- Add the following line to <configSections> element -->
- <section name="phpNet" type="PHP.Core.ConfigurationSectionHandler, PhpNetCore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=0a8e8c4c76728c71" />
+ <section name="phpNet" type="PHP.Core.ConfigurationSectionHandler, PhpNetCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0a8e8c4c76728c71" />
</configSections>
<!-- Adds a HttpHandler to process PHP files by Phalanger -->
<system.web>
<httpHandlers>
- <add verb="*" path="*.php" type="PHP.Core.PageFactory, PhpNetCore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=0a8e8c4c76728c71" />
+ <add verb="*" path="*.php" type="PHP.Core.PageFactory, PhpNetCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0a8e8c4c76728c71" />
</httpHandlers>
</system.web>
@@ -22,7 +22,7 @@
<compiler
language="PHP"
extension=".php"
- type="PHP.Core.CodeDom.PhpCodeProvider, PhpNetCore.CodeDom, Version=3.0.0.0, Culture=neutral, PublicKeyToken=0a8e8c4c76728c71"
+ type="PHP.Core.CodeDom.PhpCodeProvider, PhpNetCore.CodeDom, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0a8e8c4c76728c71"
compilerOptions="" />
</compilers>
</system.codedom>
@@ -33,20 +33,13 @@
<phpNet>
<paths>
- <set name="DynamicWrappers" value="C:\Development\Phalanger\v3.0\Deployment\Dynamic"/>
- <set name="Libraries" value="C:\Development\Phalanger\v3.0\Deployment\Bin"/>
- <set name="ExtWrappers" value="C:\Development\Phalanger\v3.0\Deployment\Wrappers"/>
- <set name="ExtTypeDefs" value="C:\Development\Phalanger\v3.0\Deployment\TypeDefs"/>
- <set name="ExtNatives" value="C:\Development\Phalanger\v3.0\Deployment\Extensions"/>
+ <set name="DynamicWrappers" value="C:\Development\Phalanger\4.0\Deployment\Dynamic"/>
+ <set name="Libraries" value="C:\Development\Phalanger\4.0\Deployment\Bin"/>
</paths>
<classLibrary>
- <add assembly="PhpNetClassLibrary, Version=3.0.0.0, Culture=neutral, PublicKeyToken=4af37afe3cde05fb" section="bcl" />
- <add assembly="PhpNetXmlDom, Version=3.0.0.0, Culture=neutral, PublicKeyToken=2771987119c16a03" section="dom"/>
- <!--<add assembly="php_ftp.mng, Version=3.0.0.0, Culture=neutral, PublicKeyToken=4ef6ed87c53048a3" section="ftp" />
- <add assembly="php_image.mng, Version=3.0.0.0, Culture=neutral, PublicKeyToken=4ef6ed87c53048a3" section="image" />
- <add assembly="php_zlib.mng, Version=3.0.0.0, Culture=neutral, PublicKeyToken=4ef6ed87c53048a3" section="zlib" />
- <add assembly="php_calendar.mng, Version=3.0.0.0, Culture=neutral, PublicKeyToken=4ef6ed87c53048a3" section="calendar" />-->
+ <add assembly="PhpNetClassLibrary, Version=4.0.0.0, Culture=neutral, PublicKeyToken=4af37afe3cde05fb" section="bcl" />
+ <add assembly="PhpNetXmlDom, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2771987119c16a03" section="dom"/>
</classLibrary>
</phpNet>
Oops, something went wrong.
View
Oops, something went wrong.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Oops, something went wrong.
@@ -15,6 +15,7 @@
using System;
//using System.Web;
using System.IO;
+using System.Linq;
using System.Collections;
using System.ComponentModel;
using System.Threading;
@@ -140,14 +141,13 @@ public static bool PhpCredits(PhpCreditsSections sections)
/// Retrieves a string version of PHP language which features is supported by the Phalanger.
/// </summary>
/// <returns>PHP language version.</returns>
- [ImplementsFunction("phpversion"/*, FunctionImplOptions.Special*/)]
+ [ImplementsFunction("phpversion")]
[PureFunction]
public static string PhpVersion()
{
return Core.PhpVersion.Current;
}
-#if !SILVERLIGHT
/// <summary>
/// Retrieves a string version of a specified extension.
/// </summary>
@@ -156,18 +156,18 @@ public static string PhpVersion()
[return: CastToFalse]
public static string PhpVersion(string extensionName)
{
- bool dummy;
- return Externals.GetModuleVersion(extensionName, true, out dummy);
+ PhpException.FunctionNotSupported();
+ //return ApplicationContext.Default.GetLoadedLibraries().FirstOrDefault(x => x.Descriptor.AssemblyAttribute ...
+ return null;
}
-#endif
/// <summary>
/// Compares PHP versions.
/// </summary>
/// <param name="ver1">The first version.</param>
/// <param name="ver2">The second version.</param>
/// <returns>The result of comparison (-1,0,+1).</returns>
- [ImplementsFunction("version_compare"/*, FunctionImplOptions.Special*/)]
+ [ImplementsFunction("version_compare")]
[PureFunction]
public static int VersionCompare(string ver1, string ver2)
{
@@ -181,7 +181,7 @@ public static int VersionCompare(string ver1, string ver2)
/// <param name="ver2">The second version.</param>
/// <param name="op">The operator to be used.</param>
/// <returns>A boolean result of comparison or a <B>null</B> reference if the operator is invalid.</returns>
- [ImplementsFunction("version_compare"/*, FunctionImplOptions.Special*/)]
+ [ImplementsFunction("version_compare")]
[PureFunction]
public static object VersionCompare(string ver1, string ver2, string op)
{
@@ -106,7 +106,7 @@ internal static object GetSetRestoreCoreOption(LocalConfiguration local, string
{
#region <paths>
- case "extension_dir": Debug.Assert(action == IniAction.Get); return app.Paths.ExtNatives;
+ case "extension_dir": Debug.Assert(action == IniAction.Get); return app.Paths.Libraries;
#endregion
@@ -676,7 +676,7 @@ public static PhpArray GetAll()
[ImplementsFunction("ini_get_all")]
public static PhpArray GetAll(string extension)
{
- PhpArray result = Externals.IniGetAll(extension);
+ PhpArray result = new PhpArray();
// adds options from managed libraries:
IniOptions.GetAllOptionStates(extension, result);
@@ -255,16 +255,8 @@ internal static object TryGetSetRestore(string name, object value, IniAction act
// option not found:
if (option == null)
{
- // check for options in native extensions:
- string result = null;
- switch (action)
- {
- case IniAction.Get: error = !Externals.IniGet(name, out result); break;
- case IniAction.Set: error = !Externals.IniSet(name, Convert.ObjectToString(value), out result); break;
- case IniAction.Restore: error = !Externals.IniRestore(name); break;
- }
- if (error) PhpException.Throw(PhpError.Warning, LibResources.GetString("unknown_option", name));
- return result;
+ PhpException.Throw(PhpError.Warning, LibResources.GetString("unknown_option", name));
+ return null;
}
// the option is known but not supported:
@@ -933,15 +933,6 @@ public static PhpArray GetWrapperSchemes()
ret.Add(scheme);
}
-#if !SILVERLIGHT
- // Then get the external wrapper schemes list.
- ICollection externals = Externals.GetStreamWrapperSchemes();
- foreach (string scheme in externals)
- {
- ret.Add(scheme);
- }
-#endif
-
// Now add the indexes (schemes) of User wrappers.
foreach (string scheme in StreamWrapper.GetUserWrapperSchemes())
{
@@ -565,7 +565,6 @@ internal void Parse(ApplicationContext/*!*/ applicationContext, XmlNode/*!*/ sec
ConfigUtils.ParseLibraryAssemblyList(
node,
addedLibraries,
- Paths.ExtWrappers,
Paths.Libraries);
break;
@@ -1131,30 +1130,6 @@ public sealed class PathsSection : IPhpConfigurationSection
public FullPath Libraries { get { return libraries; } }
private FullPath libraries;
- ///// <summary>
- ///// Path to Extensions Manager root.
- ///// </summary>
- //public FullPath ExtManager { get { return manager; } }
- //private FullPath manager;
-
- /// <summary>
- /// Path to PHP native extensions directory.
- /// </summary>
- public FullPath ExtNatives { get { return natives; } }
- private FullPath natives;
-
- /// <summary>
- /// Path to PHP extensions wrappers directory.
- /// </summary>
- public FullPath ExtWrappers { get { return wrappers; } }
- private FullPath wrappers;
-
- /// <summary>
- /// Directory path where type definitions of extensions are stored.
- /// </summary>
- public FullPath ExtTypeDefs { get { return typeDefs; } }
- private FullPath typeDefs;
-
/// <summary>
/// Last determined modification time. Used to invalidate assemblies compiled before this time.
/// </summary>
@@ -1170,7 +1145,7 @@ public PathsSection()
try { current_app_dir = (http_context != null) ? http_context.Server.MapPath("/bin") : "."; } // this can throw on Mono
catch (InvalidOperationException) { current_app_dir = "bin"; }
- libraries = /*manager =*/ natives = wrappers = typeDefs = new FullPath(current_app_dir);
+ libraries = new FullPath(current_app_dir);
string dynamic_path = (http_context != null) ? current_app_dir : Path.GetTempPath();
dynamicWrappers = new FullPath(dynamic_path);
@@ -1188,10 +1163,10 @@ public bool Parse(string name, string value, XmlNode node)
{
case "DynamicWrappers": dynamicWrappers = CheckedPath(value, node); return true;
case "Libraries": libraries = CheckedPath(value, node); return true;
- case "ExtWrappers": wrappers = CheckedPath(value, node); return true;
- case "ExtTypeDefs": typeDefs = CheckedPath(value, node); return true;
- case "ExtNatives": natives = CheckedPath(value, node); return true;
- case "ExtManager": /*manager = CheckedPath(value, node); // DEPRECATED: will be removed in future versions */ return true;
+ case "ExtWrappers": /* DEPRECATED */ return true;
+ case "ExtTypeDefs": /* DEPRECATED */ return true;
+ case "ExtNatives": /* DEPRECATED */ return true;
+ case "ExtManager": /* DEPRECATED */ return true;
}
return false;
}
@@ -2070,7 +2045,6 @@ public object Create(object parent, object configContext, XmlNode/*!*/ section)
ConfigUtils.ParseLibraryAssemblyList(
node,
result.librariesList,
- app.Paths.ExtWrappers,
app.Paths.Libraries);
break;
@@ -297,9 +297,6 @@
<Compile Include="Execution.cs">
<SubType>Code</SubType>
</Compile>
- <Compile Include="Externals.CLR.cs">
- <SubType>Code</SubType>
- </Compile>
<Compile Include="Functions.cs">
<SubType>Code</SubType>
</Compile>
@@ -545,56 +545,6 @@ public struct ConvertToClr
#endregion
- #region Externals (CLR only)
-#if !SILVERLIGHT
- public struct Externals
- {
- static Type _this { get { return typeof(PHP.Core.Externals); } }
-
- static MethodInfo _InvokeFunction, _InvokeMethod, _InvokeFunctionDynamic, _InvokeMethodDynamic,
- _GetFunctionProxy,
- _MarshalBoundVariables, _MarkParameterForBinding,
- _PrepareParametersForBinding, _BindParameters;
-
- public static MethodInfo InvokeFunction { get { if (_InvokeFunction == null) _InvokeFunction = _this.GetMethod("InvokeFunction"); return _InvokeFunction; } }
- public static MethodInfo InvokeMethod { get { if (_InvokeMethod == null) _InvokeMethod = _this.GetMethod("InvokeMethod"); return _InvokeMethod; } }
- public static MethodInfo InvokeFunctionDynamic { get { if (_InvokeFunctionDynamic == null) _InvokeFunctionDynamic = _this.GetMethod("InvokeFunctionDynamic"); return _InvokeFunctionDynamic; } }
- public static MethodInfo InvokeMethodDynamic { get { if (_InvokeMethodDynamic == null) _InvokeMethodDynamic = _this.GetMethod("InvokeMethodDynamic"); return _InvokeMethodDynamic; } }
-
- public static MethodInfo GetFunctionProxy { get { return (_GetFunctionProxy ?? (_GetFunctionProxy = _this.GetMethod("GetFunctionProxy"))); } }
-
- public static MethodInfo MarshalBoundVariables { get { if (_MarshalBoundVariables == null) _MarshalBoundVariables = _this.GetMethod("MarshalBoundVariables"); return _MarshalBoundVariables; } }
- public static MethodInfo MarkParameterForBinding { get { if (_MarkParameterForBinding == null) _MarkParameterForBinding = _this.GetMethod("MarkParameterForBinding"); return _MarkParameterForBinding; } }
-
- public static MethodInfo PrepareParametersForBinding { get { if (_PrepareParametersForBinding == null) _PrepareParametersForBinding = _this.GetMethod("PrepareParametersForBinding"); return _PrepareParametersForBinding; } }
- public static MethodInfo BindParameters { get { if (_BindParameters == null) _BindParameters = _this.GetMethod("BindParameters"); return _BindParameters; } }
-
- public struct ParameterTransformation
- {
- static Type _this { get { return typeof(PHP.Core.Externals.ParameterTransformation); } }
-
- static MethodInfo _TransformInParameters, _TransformOutParameters, _TransformInParameter, _TransformOutParameter;
-
- public static MethodInfo TransformInParameters { get { if (_TransformInParameters == null) _TransformInParameters = _this.GetMethod("TransformInParameters"); return _TransformInParameters; } }
- public static MethodInfo TransformOutParameters { get { if (_TransformOutParameters == null) _TransformOutParameters = _this.GetMethod("TransformOutParameters"); return _TransformOutParameters; } }
-
- public static MethodInfo TransformInParameter { get { if (_TransformInParameter == null) _TransformInParameter = _this.GetMethod("TransformInParameter"); return _TransformInParameter; } }
- public static MethodInfo TransformOutParameter { get { if (_TransformOutParameter == null) _TransformOutParameter = _this.GetMethod("TransformOutParameter"); return _TransformOutParameter; } }
- }
-
- public struct IExternalFunction
- {
- static Type _this { get { return typeof(PHP.Core.IExternalFunction); } }
-
- static MethodInfo _Invoke, _GetExtManager;
-
- public static MethodInfo Invoke { get { if (_Invoke == null) _Invoke = _this.GetMethod("Invoke"); return _Invoke; } }
- public static MethodInfo GetExtManager { get { if (_GetExtManager == null) _GetExtManager = _this.GetMethod("get_ExtManager"); return _GetExtManager; } }
- }
- }
-#endif
- #endregion
-
#region PhpStack
public struct PhpStack
@@ -967,13 +917,12 @@ public static class Constructors
#region Attributes - CLR only
#if !SILVERLIGHT
- static ConstructorInfo _EditorBrowsable, _ThreadStatic, _STAThread, _MTAThread, _ExtensionDescriptor;
+ static ConstructorInfo _EditorBrowsable, _ThreadStatic, _STAThread, _MTAThread;
public static ConstructorInfo EditorBrowsable { get { return _EditorBrowsable ?? (_EditorBrowsable = typeof(EditorBrowsableAttribute).GetConstructor(new Type[] { typeof(EditorBrowsableState) })); } }
public static ConstructorInfo ThreadStatic { get { if (_ThreadStatic == null) _ThreadStatic = typeof(ThreadStaticAttribute).GetConstructor(Type.EmptyTypes); return _ThreadStatic; } }
public static ConstructorInfo STAThread { get { if (_STAThread == null) _STAThread = typeof(STAThreadAttribute).GetConstructor(Type.EmptyTypes); return _STAThread; } }
public static ConstructorInfo MTAThread { get { if (_MTAThread == null) _MTAThread = typeof(MTAThreadAttribute).GetConstructor(Type.EmptyTypes); return _MTAThread; } }
- public static ConstructorInfo ExtensionDescriptor { get { if (_ExtensionDescriptor == null) _ExtensionDescriptor = typeof(ExtensionDescriptorAttribute).GetConstructor(new Type[] { typeof(string), typeof(string), typeof(bool) }); return _ExtensionDescriptor; } }
#endif
#endregion
Oops, something went wrong.

0 comments on commit 4a21a54

Please sign in to comment.