Skip to content

Instantly share code, notes, and snippets.

View kkbruce's full-sized avatar
🆚
Coding for fun

Bruce Chen kkbruce

🆚
Coding for fun
View GitHub Profile
public class MultipleXmlDocumentationProvider : IDocumentationProvider, IModelDocumentationProvider
{
// 多個 XPathNavigator
private IList<XPathNavigator> _documentNavigators = new List<XPathNavigator>();
private const string TypeExpression = "/doc/members/member[@name='T:{0}']";
private const string MethodExpression = "/doc/members/member[@name='M:{0}']";
private const string PropertyExpression = "/doc/members/member[@name='P:{0}']";
private const string FieldExpression = "/doc/members/member[@name='F:{0}']";
private const string ParameterExpression = "param[@name='{0}']";
@kkbruce
kkbruce / Order.cs
Last active August 29, 2015 14:10 — forked from dinowang/Order.cs
public enum Order
{
Ascending,
Descending
}
@kkbruce
kkbruce / Order.cs
Last active August 29, 2015 14:11 — forked from dinowang/Order.cs
public enum Order
{
Ascending,
Descending
}
@kkbruce
kkbruce / PartialCompareWithAnonymousCollection.cs
Created January 8, 2017 13:46 — forked from hatelove/PartialCompareWithAnonymousCollection.cs
使用 ExpectedObjects 含集合型別的部分比較
[TestMethod]
public void TestCollection()
{
var expected = new
{
//Orders = (new List<int> { 11, 12 }).Select(p => new { Id = p })
Orders = new[]
{
new { Id = 11 },
new { Id = 12 }
@kkbruce
kkbruce / ReflectionMethodInvoke3Ways.cs
Last active January 16, 2017 09:45
Reflection Method Invoke 3 Ways
// v1. Reflection
// 速度最慢,約 Delegate 的 4 倍
return mi.Invoke(instance, new object[] { });
// v2. Delegate
// 就撰寫難度與執行速度與可讀性,Delegate應列為首選
return mi.CreateDelegate<Func<object>>(instance)();
@kkbruce
kkbruce / Retry
Created June 1, 2017 05:27
How to retry in C#
TimeSpan nextDelay = TimeSpan.FromSeconds(2);
int retryNumber = 5;
// 監控結果
string testString = "";
for (int i = 0; i != retryNumber; i++)
{
if (string.IsNullOrWhiteSpace(testString))
{
Console.WriteLine($"String is null, retry {i + 1} ...");
@kkbruce
kkbruce / BogusAPISupportTest.linq
Last active August 17, 2017 03:36
Bogus API Support Test for LINQPad
// https://github.com/bchavez/Bogus
var faker = new Faker("en");
Console.WriteLine("----- Adress -----");
var address = faker.Address;
address.BuildingNumber().Dump("BuildingNumber");
address.City().Dump("City");
address.CityPrefix().Dump("CityPrefix");
address.CitySuffix().Dump("CitySuffix");
@kkbruce
kkbruce / GuidStringFormat.linq
Created August 17, 2017 03:35
List GUID string formats
// For LINQPad use
// 32 digits
// ex: 4af8654b1c8142c793f47f9f33c6e883
Guid.NewGuid().ToString("N").Dump("N");
// 32 digits separated by hyphens
// ex: d197f0ba-797f-49d2-bdf3-883486f29a31
Guid.NewGuid().ToString("D").Dump("D");
@kkbruce
kkbruce / Dockerfile_RedisForWindowsCore
Created December 1, 2017 01:25
Redis for Windows Server Core Container Dockerfile
# escape=`
# The MSI installs a service which is hard to override, so let's use a zip file.
FROM microsoft/windowsservercore
#MAINTAINER bruce_chen@kingston.com.tw
LABEL maintainer="bruce_chen@kingston.com.tw"
SHELL ["powershell"]
RUN $ErrorActionPreference = 'Stop'; `
wget https://github.com/MSOpenTech/redis/releases/download/win-3.2.100/Redis-x64-3.2.100.zip -OutFile Redis-x64-3.2.100.zip ; `
@kkbruce
kkbruce / VS2017ExtensionList.md
Last active November 13, 2019 02:56
Visual Studio 2017 Extension List

Visual Studio 2017 Extension List

  • Browser Reload on Save
  • ConEmuIntegration
  • Copy As Html
  • ConfigTransFormation
  • Custom Document Well
  • Double-Click Maxinize
  • EF Core Power Tools
  • GhostDoc Community for VS2017