Skip to content

Commit

Permalink
Merge pull request #868 from RSuter/master
Browse files Browse the repository at this point in the history
Release v9.13.13
  • Loading branch information
RicoSuter authored Jan 9, 2019
2 parents 8a8825d + 5c49eef commit b4ad0a6
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFrameworks>netstandard1.3;netstandard2.0;net451</TargetFrameworks>
<Description>JSON Schema reader, generator and validator for .NET</Description>
<Version>9.13.12</Version>
<Version>9.13.13</Version>
<PackageTags>json schema validation generator .net</PackageTags>
<Copyright>Copyright © Rico Suter, 2018</Copyright>
<PackageLicenseUrl>https://github.com/rsuter/NJsonSchema/blob/master/LICENSE.md</PackageLicenseUrl>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFrameworks>netstandard1.3;netstandard2.0;net451</TargetFrameworks>
<Description>JSON Schema reader, generator and validator for .NET</Description>
<Version>9.13.12</Version>
<Version>9.13.13</Version>
<PackageTags>json schema validation generator .net</PackageTags>
<Copyright>Copyright © Rico Suter, 2018</Copyright>
<PackageLicenseUrl>https://github.com/rsuter/NJsonSchema/blob/master/LICENSE.md</PackageLicenseUrl>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFrameworks>netstandard1.3;netstandard2.0;net451</TargetFrameworks>
<Description>JSON Schema reader, generator and validator for .NET</Description>
<Version>9.13.12</Version>
<Version>9.13.13</Version>
<PackageTags>json schema validation generator .net</PackageTags>
<Copyright>Copyright © Rico Suter, 2018</Copyright>
<PackageLicenseUrl>https://github.com/rsuter/NJsonSchema/blob/master/LICENSE.md</PackageLicenseUrl>
Expand Down
2 changes: 1 addition & 1 deletion src/NJsonSchema.Yaml/NJsonSchema.Yaml.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFrameworks>netstandard1.3;netstandard2.0;net45</TargetFrameworks>
<Description>JSON Schema reader, generator and validator for .NET</Description>
<Version>9.13.12</Version>
<Version>9.13.13</Version>
<PackageTags>json schema validation generator .net</PackageTags>
<Copyright>Copyright © Rico Suter, 2018</Copyright>
<PackageLicenseUrl>https://github.com/rsuter/NJsonSchema/blob/master/LICENSE.md</PackageLicenseUrl>
Expand Down
44 changes: 28 additions & 16 deletions src/NJsonSchema/Infrastructure/XmlDocumentationExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -381,15 +381,20 @@ private static async Task<XElement> GetXmlDocumentationAsync(this ParameterInfo
var name = GetMemberElementName(parameter.Member);
var result = (IEnumerable)DynamicApis.XPathEvaluate(xml, $"/doc/members/member[@name='{name}']");

var element = result.OfType<XElement>().First();
await ReplaceInheritdocElementsAsync(parameter.Member, element).ConfigureAwait(false);
var element = result.OfType<XElement>().FirstOrDefault();
if (element != null)
{
await ReplaceInheritdocElementsAsync(parameter.Member, element).ConfigureAwait(false);

if (parameter.IsRetval || string.IsNullOrEmpty(parameter.Name))
result = (IEnumerable)DynamicApis.XPathEvaluate(xml, $"/doc/members/member[@name='{name}']/returns");
else
result = (IEnumerable)DynamicApis.XPathEvaluate(xml, $"/doc/members/member[@name='{name}']/param[@name='{parameter.Name}']");
if (parameter.IsRetval || string.IsNullOrEmpty(parameter.Name))
result = (IEnumerable)DynamicApis.XPathEvaluate(xml, $"/doc/members/member[@name='{name}']/returns");
else
result = (IEnumerable)DynamicApis.XPathEvaluate(xml, $"/doc/members/member[@name='{name}']/param[@name='{parameter.Name}']");

return result.OfType<XElement>().FirstOrDefault();
return result.OfType<XElement>().FirstOrDefault();
}

return null;
}

private static async Task ReplaceInheritdocElementsAsync(this MemberInfo member, XElement element)
Expand Down Expand Up @@ -539,23 +544,30 @@ private static async Task<string> GetXmlDocumentationPathAsync(dynamic assembly)

if (ReflectionExtensions.HasProperty(assembly, "CodeBase"))
{
path = DynamicApis.PathCombine(DynamicApis.PathGetDirectoryName(assembly.CodeBase
.Replace("file:///", string.Empty)), assemblyName.Name + ".xml")
.Replace("file:\\", string.Empty);
var codeBase = (string)assembly.CodeBase;
if (!string.IsNullOrEmpty(codeBase))
{
path = DynamicApis.PathCombine(DynamicApis.PathGetDirectoryName(codeBase
.Replace("file:///", string.Empty)), assemblyName.Name + ".xml")
.Replace("file:\\", string.Empty);

if (await DynamicApis.FileExistsAsync(path).ConfigureAwait(false))
return path;
if (await DynamicApis.FileExistsAsync(path).ConfigureAwait(false))
return path;
}
}

var currentDomain = Type.GetType("System.AppDomain")?.GetRuntimeProperty("CurrentDomain").GetValue(null);
if (currentDomain?.HasProperty("BaseDirectory") == true)
{
var baseDirectory = currentDomain.TryGetPropertyValue("BaseDirectory", "");
path = DynamicApis.PathCombine(baseDirectory, assemblyName.Name + ".xml");
if (await DynamicApis.FileExistsAsync(path).ConfigureAwait(false))
return path;
if (!string.IsNullOrEmpty(baseDirectory))
{
path = DynamicApis.PathCombine(baseDirectory, assemblyName.Name + ".xml");
if (await DynamicApis.FileExistsAsync(path).ConfigureAwait(false))
return path;

return DynamicApis.PathCombine(baseDirectory, "bin\\" + assemblyName.Name + ".xml");
return DynamicApis.PathCombine(baseDirectory, "bin\\" + assemblyName.Name + ".xml");
}
}

var currentDirectory = await DynamicApis.DirectoryGetCurrentDirectoryAsync();
Expand Down
2 changes: 1 addition & 1 deletion src/NJsonSchema/NJsonSchema.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFrameworks>netstandard1.0;netstandard2.0;net40;net45</TargetFrameworks>
<Description>JSON Schema reader, generator and validator for .NET</Description>
<Version>9.13.12</Version>
<Version>9.13.13</Version>
<PackageTags>json schema validation generator .net</PackageTags>
<Copyright>Copyright © Rico Suter, 2018</Copyright>
<PackageLicenseUrl>https://github.com/rsuter/NJsonSchema/blob/master/LICENSE.md</PackageLicenseUrl>
Expand Down

0 comments on commit b4ad0a6

Please sign in to comment.