Czy istnieje sposób na dodanie wszystkich nazw obiektów .NET do mojego słownika

1

Czy istnieje sposób, aby dodać wszystkie nazwy obiektów .NET do mojego słownika w MS-Word? Używam ich bardzo często podczas pisania codziennych notatek lub dokumentacji i byłoby miło, gdyby automatyczne poprawianie mnie nie ścigało za każdym razem, ale faktycznie pomogło mi zidentyfikować właściwe słowo, którego szukam. Wiem, jak ręcznie dodać jedno słowo, ale to nie jest opcja. Czy istnieje szybki / wbudowany sposób dodawania wszystkich tych nazw lub czy muszę edytować plik programowo?

Joel B
źródło
Jak to robisz ręcznie?
Austin T French
@AtomSfere - jest kilka sposobów „ręcznego” dodania pojedynczego słowa, na przykład wpisania go, i kliknięcia prawym przyciskiem myszy & gt; dodaj do słownika lub ta odpowiedź
Joel B
@JoelB: Zamiast pojedynczego klikania prawym przyciskiem myszy łatwiej jest nacisnąć klawisz F7, aby wyświetlić okno dialogowe pisowni, a następnie dla każdego z nich kliknąć Dodaj do słownika (Alt + A).
James P
Istnieją tysiące klas w zestawach systemu podstawowego (system, mscorlib), ale jeśli weźmiesz pod uwagę inne zestawy, takie jak system.web, otrzymasz ogromną liczbę. Nie zapominaj również, że wiele nazw metod spowoduje również narzekanie na sprawdzanie pisowni. Dlatego myślę, że łatwiej jest dodać nazwy ręcznie, korzystając z powyższej metody.
James P
Inna opcja: Jeśli używasz określonego stylu (stylów) w swoich dokumentach dla kodu .NET, możesz wyłączyć sprawdzanie pisowni. (Google wyłącza sprawdzanie pisowni kodu w programie Microsoft Word).
Brian

Odpowiedzi:

1

To powinno działać z PowerShell:

$net4 = gci "C:\Windows\Microsoft.NET\Framework\v4.0.30319" | Where-Object {$_.Extension -eq ".dll"}

$net4 | ForEach-Object {
$_.name | Out-File "C:\Users\YourUser\AppData\Roaming\Microsoft\UProof\CUSTOM.DIC" -Append
}

Możesz mieć albo pętlę przez wszystkie frameworki, aby być bezpieczną, albo zrobić to raz dla każdego katalogu .NET.

Ponadto, jeśli chcesz nazwę pliku bez użycia rozszerzenia (.dll) $_.Basename


Aktualizacja: Uruchomiłem skrypt i to działało dla mnie. Dodałem biblioteki w ten sposób, na przykład mscorlib.


Jestem również w stanie uzyskać metody:

$net4 = gci "C:\Windows\Microsoft.NET\assembly\GAC_MSIL\" -Recurse -Force | Where-Object {$_.Extension -eq ".dll"}

$Methods

$net4 | ForEach-Object {

$Methods += $_ | Get-Member -Force -View All | Select -ExpandProperty Name

}

$Methods | Out-File "C:\Users\UserName\AppData\Roaming\Microsoft\UProof\CUSTOM.DIC" -Append

I dostaje mnie (wśród wielu, wiele więcej):

OpenWrite
Refresh
Replace
SetAccessControl
set_Attributes
set_CreationTime
set_CreationTimeUtc
set_IsReadOnly
set_LastAccessTime
set_LastAccessTimeUtc
set_LastWriteTime
set_LastWriteTimeUtc
ToString
PSChildName
PSDrive
PSIsContainer
PSParentPath
PSPath
PSProvider
Attributes

Teraz problem polega na tym, że istnieje wiele duplikatów, ale stąd powinno być prostsze.

Możesz także użyć C:\Windows\Microsoft.NET\Framework katalogi zamiast GAC, jeśli chcesz.

Austin T French
źródło
To jest blisko. To w najlepszym przypadku dodaje tylko nazwę DLL, która nie jest nazwą obiektu. Obiekty są zawarte w bibliotece DLL i szukam tych nazw (takich jak ISerializeable lub DivideByZeroException ) do dodania do mojego słownika.
Joel B
Ach, to przyszło mi do głowy później. Będę musiał się zastanowić, czy mogę się rozwijać w tym celu.
Austin T French
Zapytałem tutaj, ponieważ miałem nadzieję, że skrypt PowerShell może to zrobić, ale myślę, że będzie to tylko gra .NET z wykorzystaniem Reflection.
Joel B
1
PowerShell może korzystać z refleksji ... I tego właśnie szukam.
Austin T French