C#で弱参照を扱うクラス「System.WeakReference」を使っていて、扱いにくいと思ったので、もっと扱いやすくなるよう独自にクラスを作ってみました。
使いたい方はご自由にお持ちください。
基本usingしなくても使えるよう名前空間がSystemになっていますが、気に入らない方はそれぞれ名前空間を変更してください。

http://www.myqnapcloud.com/smartshare/68704567o61n820u6428z5z3_6h1wEPX

使い方

WeakRef wr; // 宣言
wr = "Sample"; // 代入

string str1 = (string)wr; // 参照1
string str2 = wr?.Target; // 参照2(C# 6.0以降)